어떤 프로토콜, 도메인, 포트로 보낼지 파싱한다.
https://www.naver.com:443
https
는 프로토콜
www.naver.com
은 URL(도메인)
443
은 포트번호를 의미한다.
물론 포트번호는 평상시에 입력안해도 자동으로 들어감
HSTS(HTTP Strict Transport Security) 목록을 확인하고 있으면 HTTPS로 없으면 HTTP로 요청한다.
일단 브라우저/로컬에 캐시 확인해서 도메인에 해당하는 IP가 있는지 찾아보고 없으면 OS에게 DNS 서버 요청하라고 하고 DNS 서버는 해당 도메인에 해당하는 IP를 알려준다.
TCP 소켓을 열어서 3-way handshake로 연결을 설정한다.
HTTPS의 경우 TLS handshaking 과정을 통해 세션키를 생성한다.
3-way handshake
3-way handshake는 TCP의 접속하는 과정이다.
가. 클라이언트가 서버에 접속 요청하는 SYN 패킷을 보낸다.
이때 클라이언트는 SYN을 보내고 SYN/ACK 응답기다리는 SYN_SENT상태
서버는 Wait for Client상태
나. 서버는 요청을 받고 클라이언트에게 요청을 수락하는 ACK와 SYN flag가 설정된 패킷을 발송한다.
이때 서버는 SYN_RECEIVED 상태가 된다.
다. 클라이언트는 서버에게 ACK를 보내고 연결이 이루어진다.
이때 서버는 ESTABLISHED가 된다.
쉽게말하면
철수 : 영희야 5천원 줘
영희 : 철수야 5천원 보냈어
철수 : 영희야 5천원 확인했어
https://sorjfkrh5078.tistory.com/62
해당 서버와 통신할 준비가 완료되어 서버에게 입력한 url을 달라고 요청한다. 서버는 이 요청에 대한 응답을 생성하여 브라우저에게 전달한다.
서버에서 보낸 응답(HTML, CSS, Javascript 등)을 브라우저가 해석하여 렌더링 한다.
https://www.notion.so/dingco/Front-end-012491a58c07413193f5af563e2b7937
https://sorjfkrh5078.tistory.com/65
https://bangu4.tistory.com/74