웹의 프로세스를 아주 간단히 요약하자면 위와 같다. 클라이언트가 서버에게 요청을 보내면, 서버는 그에 대한 응답을 클라이언트에게 돌려준다.
클라이언트 단에는 우리가 실제로 사용하는 인터넷에 연결된 장치들과, 해당 장치에서 웹에 접근하기 위한 소프트웨어들이 있다. 대표적인 예시로는 컴퓨터의 인터넷브라우저(크롬, 파이어폭스, 인터넷익스플로러)를 들 수 있다.
서버는 웹페이지, 사이트, 앱을 저장하는 컴퓨터다. 클라이언트가 웹페이지에 접근하길 원할 때, 서버로부터 클라이언트의 웹 브라우저에서 보여지기 위한 웹페이지의 사본이 다운로드 된다.
클라이언트와 서버 사이에 일어나는 웹의 동작 과정을 좀 더 자세히 살펴보자.
**웹 동작과정 이미지
- 브라우저에 방문할 웹사이트 URL을 입력하면 DNS서버로 해당 사이트의 IP주소 요청
- DNS서버가 URL의 IP주소를 클라이언트로 반환
- 클라이언트는 서버에게 웹사이트의 사본(보통 index.html)을 보내달라는 HTTP 요청 메세지 전송(Request)
- 서버는 요청을 승인하고 "200 OK" 메세지를 클라이언트에게 보낸 뒤 웹사이트의 파일들을 데이터 패킷으로 묶어 브라우저에 전송(Response)
- 브라우저는 받은 패킷들을 웹 사이트로 조립해 출력
TCP/IP: Transmission Control Protocol (전송 제어 규약) 과 Internet Protocol (인터넷 규약). 데이터를 어떻게 주고받을지 정의해둔 통신 규약이다. 클라이언트와 서버 사이에 주고받는 요청, 응답, 데이터는 모두 TCP/IP 연결을 통해서 전송된다.
DNS: Domain Name System Servers는 웹사이트를 위한 주소록이라 볼 수 있다. 웹사이트에 접속하기 위해 브라우저에 URL을 입력하면, 브라우저는 DNS에 해당 사이트의 IP주소를 요청한다.
HTTP: HyperText Transfer Protocol (하이퍼텍스트 전송 규약). 클라이언트와 서버가 서로 통신할 수 있게 하기 위한 언어를 정의하는 어플리케이션 규약이다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
'공부 > 웹' 카테고리의 다른 글
[tomcat] 에러 내용 및 버전 정보 삭제 (0) | 2020.02.07 |
---|---|
[Docker] i/o timeout 에러 (0) | 2019.12.27 |
If-None-Match, 412 Status Code, Etag (0) | 2019.12.11 |