728x90
- URL을 웹 브라우저의 주소창에 입력한다.
- 웹 브라우저가 URL을 해석 후 문법에 맞지 않는다면 검색엔진을 이용해 검색한다.
- 문법에 맞으면 URL의 호스트 부분을 인코딩한다.
- HSTS(HTTP Strict Transport Security) 목록을 확인하고 있으면 HTTPS로, 없다면 HTTP로 요청한다.
- DNS(Domain Name Server) 조회
- 브라우저/로컬 캐시를 확인해서 도메인에 해당하는 IP가 있는지 확인한다.
- 없다면 OS에게 DNS 서버에 요청을 지시
- DNS 서버는 해당 도메인에 해당하는 IP를 돌려준다
- (HTTP 요청)
TCP 3-way handshake과정을 통해 연결을 설정한다.- 클라이언트가 서버에게 연결 요청 (SYN 패킷)
- 서버가 클라이언트에게 요청을 수락하고 연결을 설정한다는 메시지 전송 (SYN-ACK 패킷)
- 클라이언트가 서버에게 연결을 수락한다는 메시지를 전송 (ACK 패킷)
- 위의 세 단계 이후 연결이 설정됨
- (HTTPS 요청)
HTTPS 요청이라면 TCP 대신 TLS(Transport Layer Security) handshake 과정을 통해 세션키를 생성한다.- HTTPS와 HTTP의 차이점인 연결 유지와 데이터 보안이 보여지는 부분이다.
- 세션이 유지되는 동안 서버에게 요청하고 응답을 받는 과정이 반복되어진다.
- 웹 브라우저는 응답받은 HTML/CSS/JS 및 이미지, 폰트 등의 리소스를 사용해 렌더링한다.
이후 사용자는 렌더링/로드 된 페이지와 상호작용하며 이용할 수 있다.
렌더링 관련 정리 글 - 서버와의 세션 종료는 HTTP와 HTTPS 각각 다른 방식으로 진행된다.
HTTP => TCP 4-way handshake
HTTPS => TLS handshake의 역순
728x90
'CS > 네트워크' 카테고리의 다른 글
[그림으로 쉽게 이해하는 웹/HTTP/네트워크] 웹 1.0 부터 3.0까지, 가볍게 읽는 웹 변천사 (1) | 2024.09.19 |
---|---|
웹 어플리케이션 아키텍처 (4) | 2024.09.10 |
[그림으로 쉽게 이해하는 웹/HTTP/네트워크] WWW와 인터넷 그리고 웹 (1) | 2024.08.29 |