goal
웹의 동작 방식 큰 그림을 이해한다. (얕은 개념)
패킷을 이해한다. (얕은 개념)
1 ] 웹의 동작 방식
- 서버의 범위 : Database도 데이터 제공자이기 때문에 Server라고 볼 수 있다.
[1] 웹 통신과 관련된 개념
용어 | 설명 |
인터넷 연결 | 웹에서 데이터를 보내고 받을 수 있게 해준다. |
TCP / IP (Transmission Control Protocol / Internet Protocal) |
데이터가 어떻게 웹을 건너 여행을 해야하는지 정의하는 통신 규약 - TCP : 전송제어규약 - IP : 인터넷규약 |
DNS 서버 (Domain Name System Servers) | 서버의 주소를 찾는 것 - 호스트의 도메인 이름((예)www.naver))을 호스트 주소((예)12,345.678.123)로 변환 - 또는 그 반대로 변환하여 수행하는 것 |
HTTP (Hypertext Transfer Protocol) | 하이퍼텍스트 전송규약이라고 한다. 클라이언트와 서버가 서로 통신할 수 있게 하기위한 언어 정의 |
컴포넌트 파일 | 웹 사이트는 많은 파일의 연결로 만들어진다. - 코드 파일 :: HTML. CSS, JavaScript 등 - 자원 :: 정적인 데이터 (이미지, 음악, 비디오 등) |
[2] 동작방식
- 클라이언트가 웹 주소를 입력한다.
- 브라우저(크롬)는 DNS 서버로 가서 웹 사이트가 접근하고자 하는 서버의 진짜 주소(호스트 주소)를 찾는다.
- 브라우저는 서버에게 웹 사이트의 사본을 클라이언트에게 보내달라는 HTTP 요청 메세지를 서버로 전송
- 클라이언트-서버 사이에 전송된 모든 데이터는 TCP / IP 연결을 통해서 전송
- TCP/IP에 대해서 포스팅 했지만 개념이 제대로 잡히지 않은 상태
- 서버는 요청을 승인 후, 클라이언트에게 HTTP응답을 한다.
- 포스팅 했지만, HTTP 응답에는 다양한 종류가 존재한다.
- 응답이 승인되면(200) 서버는 데이터들을 데이터 패킷이라 불리는 작은 일련의 덩어리들로 브라우저에게 전송한다.
- 브라우저는 패킷을 조립하여 사용자의 화면에 띄운다.
[3] 패킷의 존재이유
- 패킷은 소금통 안에 있는 작은 소금 알맹이와 같다.
- 효율성의 이유로 존재한다.
- 데이터를 패킷으로 나누지 않고 한 번에 전송하게 된다면 한 사용자만 이용할 수 있게 된다.
- 하지만, 패킷으로 나눈다면 동시에 여러 사용자가 이용이 가능하다.
※ 우선은 패킷의 내부적인 동작에 대해서 신경쓰지말자
위에서는 소금 알맹이로 비교했지만, 모두가 이용한다는 관점에서 볼 때 계란 하나를 쪼개지 않고 혼자서 독식하는 것과 계란 하나를 여러개로 쪼개서 여러명이 먹는것과 같은거다.
(웹 관점에서는 이 패킷들이 합쳐져 우리가 원하는 데이터로 보여준다는 차이점이 있음은 상기해야한다.)