프로토콜
, URL
, 포트
로 요청할 것인지 해석 및 분석HTTP는 80
, HTTPS는 443
의 디폴트 값으로 요청HSTS
는 HTTP
를 허용하지 않고 HTTPS
를 사용하는 연결만 허용하는 기능HTTP
로 요청이 왔다면 HTTP 응답 헤더에 Strict Transport Security
라는 필드를 포함하여 응답HTTPS
만을 통해 통신HSTS 목록
이라고 한다HSTS
목록 조회를 통해 해당 요청을 HTTPS
로 보낼지 판단URL이 존재
한다면 명시적으로 HTTP
를 통해 요청한다 해도 브라우저가 이를 HTTPS
로 요청 한다.www.naver.com
이라는 주소로는 컴퓨터 끼리 통신 xDNS 서버에 요청하여 해당 URL을 IP로 변환
한다.10.20.30.6
이라고 가정라우터
의 라우팅
을 통해 이루어진다.
논리 주소인 IP를 물리 주소인 MAC으로 변환
해야 한다ARP를 브로드 캐스팅
함대상 서버와 통신을 하기 위해 TCP 소켓 연결
을 진행 (3-way-handshake
)
클라이언트에서 서버에 연결 요청 (SYN
), 이 때 클라이언트는 Closed
, 서버는 LISTEN
상태
서버가 SYN
을 받으면 ACK
데이터와 함께 클라이언트쪽에서도 포트를 열어달라는 SYN
을 전송
(서버는 처음에 LISTEN
상태에서 요청을 받고, SYN + ACK
이후엔 SYN_RCV
상태가 됨)
클라이언트에서 서버로 부터 ACK + SYN
을 받으면, 포트를 열고 이에 대한 응답으로 서버에
ACK
를 전송 (클라이언트는 ESTABLISHED
상태가 된다)
ACK
데이터를 받은 서버 역시 ESTABLISHED
상태가 되면서, 클라이언트와 서버는 연결이 됨
위 그림은 HTTPS
의 요청
암호화 통신을 위한 TLS 핸드셰이킹
이 추가됨
HTML
, CSS
, Javascript
등으로 이루어져 있다참조
https://owlgwang.tistory.com/1
https://velog.io/@directorhwan59/웹-브라우저에-URL을-입력하고-첫-화면이-출력되기까지
https://deveric.tistory.com/97