브라우저에서 서버로부터 응답을 받는 과정

개발을 하다 보면 API요청을 하는 일이 많이 있는데요. 브라우저에서 API 요청을 하고 서버로부터 응답을 받기 까지는 어떠한 과정을 거치게 될까요? 1. 사용자가 입력한 URL을 분석 URL(Uniform Resource Locator)은 인터넷에서 자원의 위치(주소)를 나타냅니다. 그리고 URL은 프로토콜, 도메인네임, 포트, 경로, 파라미터 등으로 구성됩니다. 만약 이 URL 문법에 맞지 않는다면, 기본 검색엔진으로 검색을 요청합니다. 2. URL을 IP 주소로 변환(DNS 조회) URL에는 도메인네임이 들어갑니다. 이 도메인네임을 DNS(Domain Name System) 서버에 요청하여 컴퓨터가 읽을 수 있는 IP 주소로 변환합니다. IP 주소를 바로 입력해도 됩니다만, IP 주소는 기억하기 어렵습니다 (도메인을 돈 주고 사는 이유) 3. 대상 서버와 TCP 소켓 연결 TCP 소켓 연결은 3 way handshake라는 과정을 통해 이루어집니다. - 1단계 SYN (synchronize sequence numbers 동기 시퀀스 넘버): 연결 요청 메시지 전송 - 2단계 SYN + ACK(Acknowledgement 답신): SYN 요청에 대해 서버에서 응답을 합니다.(수락 혹은 거절) - 3단계(ACK): 서버로부터의 응답을 확인하고 데이터전송을 시작할 안정적인 연결을 설정합니다. 참고로 HTTP3에서는 TCP의 3 way handshake를 없애고자 TCP가 아닌 UDP를 사용합니다. 4. 요청, 응답 및 브라우저 렌더링 드디어 연결이 확정되었습니다. 해당 페이지를 서버에 요청하고 서버는 이 요청에 대한 응답을 브라우저에게 전달합니다. HTML, CSS, JavaScript를 전달받은 브라우저는 구문 분석을 통해 파싱 -> 렌더링 트리 구성 -> 렌더링 트리 배치(레이아웃) -> 페인팅 등의 과정을 통해 사용자에게 화면을 보여줍니다. API 요청 시 브라우저에서 서버로부터의 응답을 아주 간략하게 4가지로 요약해 보았는데요. 실제로는, HTTP, HTTPS로 보낼지 판단하는 HSTS 목록 조회, 논리적 주소인 IP를 물리적 주소(MAC)으로 변경하는 ARP(Address Resolution Protocol)의 과정 등이 더 있습니다. 네트워크 지식은 모든 개발자에게 필요한 지식이기에 여유가 되신다면 틈틈이 공부하시는 것을 추천드립니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 6일 오전 12:56

 • 

저장 374조회 7,201

댓글 0