본문 바로가기
인턴(2023.07. ~ 2023.12.)/스크립트 송출 서버 개발

웹 서비스 구조

by xladmt 2023. 8. 8.

웹의 작동 원리

 

 

정적 페이지와 동적 페이지

 

- 정적 페이지(Static Pages)

데이터베이스에서 정보를 가져오거나 등 별도의 서버에서의 처리가 없어도, 사용자들에게 보여줄 수 있는 페이지

ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들

 

- 동적 페이지(Dynamic Pages)

서버(web server)에 있는 데이터들을 스크립트에 의해 가공 처리한 후 생성되어 전달되는 웹 페이지

서버 : 사용자의 요청(Request)을 해석하여 데이터를 가공한 후 생성되는 웹 페이지를 보냄.

사용자 -> 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됨.

 

 

 

 

도메인과 URL

 

1. 도메인 구조

 

2. URL(Uniform Resource Locators) 구조

 

 

 

Web Server와 WAS

 

 

1. Web Server

- HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)와 같은 정적인 컨텐츠를 제공해주는 컴퓨 프로그램이다.

 

[Web Server의 기능]

 기능 1)

    - 정적인 컨텐츠 제공

    - WAS를 거치지 않고 바로 자원을 제공

 기능 2)

    - 동적인 턴첸츠 제공을 위한 요청 전달

    - 클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다.

    - 클라이언트는 일반적으로 웹 브라우저를 의미

 

예) Apache Server, Nginx, ...

 

2. WAS

- DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Appllication Server

 

[WAS의 기능]

 1) 프로그램 실행 환경과 DB 접속 기능 제공

 2) 여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능

 3) 업무를 처리하는 비즈니스 로직 수행

 

예) Tomcat, JBoss, Jeus, Web Sphere 등

 

 

 

 

 

http 쿠키란?

http 쿠키는 웹 쿠키, 브라우저 쿠키로도 불리는데 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각을 의미한다. http 통신은 stateless하기 때문에 클라이언트를 확인하기 위해서는 쿠키라는 개념이 필요하다. 쿠키는 주로 세션 관리(서버에서 관리하는 로그인 등의 정보를 의미), 개인 설정유지, 사용자 트래킹(사용자의 행동을 기록하고 분석하는 것) 용도로 사용된다.

 

http의 stateless란?
http에서 stateless 하다는 것은 서버 입장에서 클라이언트의 상태가 없다는 의미로 클라이언트의 요청이라도 매번 각 요청은 독립적이라는 의미이다. 이미 요청을 했었던 클라이언트인지 매번 확인하기 어렵기 때문에 쿠키를 주는 것이다.

 

[쿠키의 특징]

- 쿠키는 한 개에 4KB까지 저장 가능하며, 최대 300개까지 저장할 수 있는 텍스트 파일이다.

- 쿠키는 클라이언트에 저장된다.

- 쿠키에는 이름, 값, 만료날짜, 경로 정보가 들어있다.

- 기본적으로 쿠키는 웹 브라우저가 종료되면 삭제된다.(만료날짜를 지정해주면 만료일이 되어야 삭제됨)

- 웹 브라우저에 해당 서버의 쿠키 정보가 있으면 http 요청(http 헤더의 cookie)에 무조건 담아 보낸다.

 

[쿠키 작동 방식]

쿠키도 결국 HTTP 통신에서 이루어지는 것이기 때문에 HTTP 의 응답과 요청에 따라 작동한다.

요청을 받은 서버에서 쿠키를 클라이언트(웹 브라우저)로 보내고 클라이언트는 쿠키를 받으면 도메인 서버 이름으로 정렬된 쿠키 디렉토리에 쿠키(정보)를 저장한다. 이후 클라이언트가 동일한 서버로 HTTP 요청을 보내면 저장된 쿠키도 같이 전송되며, 만약 서버에서 쿠키에 업데이트된 내용이 있으면 응답할 때 다시 업데이트된 쿠키를 보내준다.

 

 

 

res.writeHead(200, {
    'Set-Cookie':[
    'first-cookie=1', 
    `Permanent=cookies; Max-Age=${60*60*24*30}` // 60초 * 60분 * 24시간 * 30일
    ]
});

 

 

 

[참고]

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://noahlogs.tistory.com/38

 

[네트워크] HTTP 쿠키와 세션이란 ?

HTTP 에는 쿠키라는 개념이 존재하는데, 이름부터가 친숙하고 귀엽다. 왜 쿠키라는 이름이 붙여졌을까에는 여러가지 이야기들이 있는데, 내가 처음 공부할 때 들었던 이야기는 헨젤과 그레텔 동

noahlogs.tistory.com

https://studee.tistory.com/55

 

[Nodejs-cookie] 쿠키를 언제까지 살아있게 할까?

[생활코딩] Session 쿠키 VS Permanent 쿠키 Session cookies - 웹브라우저가 켜져있는 동안 유효하고 끄고 다시 켜면 없어짐 Permanent cookie - 웹브라우저를 껐다 켜도 유지됨 Permanent cookie 설정하기 Permanent coo

studee.tistory.com

 

'인턴(2023.07. ~ 2023.12.) > 스크립트 송출 서버 개발' 카테고리의 다른 글

Node.js http 모듈  (0) 2023.08.17
인메모리 컴퓨팅  (0) 2023.08.10
Node.js - Cluster  (0) 2023.08.09
HTTP와 HTTPS  (0) 2023.08.09
Node.js 란?  (0) 2023.08.08