웹 통신의 큰 흐름.
인터넷 브라우저에 www.daum.net 을 입력할 시 일어나는 과정.
(제대로 정리가 안되어서 말로 표현을 잘 못했었다.)
- 브라우저의 URL 파싱.
https://www.daum.net:443
protocol. URL. Port
- 어떤 프로토콜을 통해 해당 URL에 요청할 것인지.
- 어떤 URL로 요청할 것인지.
- 어떤 포트로 요청할 것인지.
브라우저에서 각각 프로토콜, URL, 포트를 해석해서 분석.
- HSTS 목록 조회
- HSTS(HTTP Strict transport security), HTTP를 허용하지 않고 HTTPS를 사용하는 연결만 허용하는 기능.
이를 통해 브라우저에서는 이 HSTS 목록 조회를 통해 해당 요청을 HTTPS로 보낼지 판단.
HSTS 목록에 해당 URL이 존재한다면 명시적으로 HTTP를 통해 요청한다 해도 브라우저가 이를 HTTPS로 요청
- URL을 IP주소로 변환
인터넷 상에서 컴퓨터가 읽을 수 있는 IP주소로 변환해야 서로 통신이 가능.
우선 브라우저에서는 자신의 로컬 hosts 파일과 브라우저 캐시에 해당 URL이 존재하는지 확인함.
존재하지 않는다면 도메인 주소를 IP주소로 변환해주는 DNS(Domain Name System) 서버에 요청하여 해당 URL이 IP주소로 변환.
- DNS 서버로 요청하는 과정
1. 미리 설정된 Local DNS에 해당 URL 주소의 IP주소를 요청.
2. Local DNS에 해당 IP주소가 존재한다면 이를 응답하고, 없다면 다른 DNS 서버와 통신. root DNS 서버에 해당 URL의 IP주소를 요청.
3. root DNS 서버에 해당 IP주소가 없다면 하위 DNS 서버에 요청하라고 응답. 이 응답을 받은 Local DNS는 net 도메인을 관리하는 DNS 서버에 같은 내용을 요청합니다.
4. net DNS 서버에 해당 IP주소가 없다면 하위 DNS 서버에 요청하라고 응답. 이 응답을 받은 Local DNS 는 daum.net 도메인을 관리하는 DNS 서버에 같은 내용을 요청.
5. daum.net DNS 서버에서 IP주소를 응답받은 Local DNS 는 해당 IP주소를 캐싱하고 응답.
-
라우터를 통해 해당 서버의 게이트웨이까지 이동 (이제 하드웨어 쪽.. 네트워크 관리사를 공부하면서 봤던 내용이 나오기 시작..)
라우터에서는 라우팅 테이블을 통해 해당 요청이 어떤 경로를 통해 가야할지 경로를 지정.
-
ARP를 통해 IP주소를 MAC 주소로 변환
실질적인 통신을 하기 위해서는 논리 주소인 IP주소를 물리 주소인 MAC 주소로 변환해야 합니다. 이를 위해 해당 네트워크 내에서 ARP를 브로드 캐스트. 해당 IP 주소를 가지고 있는 노드는 자신의 MAC 주소를 응답.
-
대상 서버와 TCP 소켓 연결
이제 대상 서버와 통신하기 위해 TCP 소켓 연결을 진행. 소켓 연결은 3-way-handshake 라는 과정을 통해 이루어짐.
-
HTTP(HTTPS) 프로토콜로 요청, 응답
- 브라우저에서 응답을 해석(이제 스크립트 해석..)
예전에 배웠던 OSI7 계층의 주고받는 흐름인 것. 7 ->...1 -> 1... ->7
정리가 잘 되어있는 사이트를 보면서 상기시켜봤다.
링크