- 사용자가 웹사이트에 처음 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.2025년 01월 09일 14시 44분 23초에 업로드 된 글입니다.작성자: do_hyuk
예를들어 사용자가 www.google.com을 입력하면, 브라우저는 HTTP 프로토콜을 사용해 구글 웹 서버와 통신하려고 합니다.
HTTP는 OSI 7계층 중 애플리케이션 계층에서 동작하는 프로토콜입니다.
이때 브라우저는 요청한 도메인 이름(www.google.com)에 대한 IP 주소를 알아야 하기 때문에 DNS(Domain Name System) 서버에 질의합니다.
이 질의 과정 또한 애플리케이션 계층에서 이루어지며, DNS 서버는 해당 도메인에 대한 IP 주소(예를 들어, 142.250.190.78)를 응답합니다.
IP 주소를 얻은 후, 브라우저는 구글 서버와 통신을 시작합니다.
HTTP는 TCP/IP를 기반으로 작동하므로, 데이터를 주고받기 전에 TCP 3-Way Handshake 과정이 필요합니다.
이 단계는 전송 계층(4계층) 에서 이루어집니다.
TCP 연결이 성립된 후, 브라우저는 HTTP Request 메시지를 생성하여 구글 서버에 보냅니다.
예를 들어, 브라우저는 “GET / HTTP/1.1”이라는 요청을 TCP 프로토콜을 통해 80번 포트로 전송합니다.
이때 데이터는 패킷(Packet) 형태로 네트워크를 통해 전달됩니다.
네트워크를 통해 데이터를 전송하기 위해서는 네트워크 계층(3계층) 에서 IP 주소를 사용하고, 데이터 링크 계층(2계층) 에서 MAC 주소를 사용하여 패킷이 전송됩니다.
구글 서버는 클라이언트의 요청을 수신하고 이를 처리한 후, HTTP Response 메시지를 생성하여 응답합니다.
서버는 요청이 성공했음을 알리는 200 OK 상태 코드와 함께 웹 페이지 데이터를 전송합니다.
브라우저는 이 응답을 받아 HTML, CSS, 자바스크립트 등의 데이터를 해석하여 화면에 페이지를 렌더링합니다.
모든 데이터 전송이 완료되면 클라이언트와 서버는 4-Way Handshake 과정을 거쳐 TCP 연결을 종료합니다.
'면접 대비' 카테고리의 다른 글
데이터베이스 시스템에서 동시성을 제어하는 방법에 대해 설명해주세요. (0) 2025.01.12 HTTP 메서드에서 멱등성이란 무엇인가요? (0) 2025.01.10 데이터베이스 커넥션 풀(Connection Pool)을 사용하지 않으면 어떤 문제가 발생할 수 있나요? (0) 2025.01.08 스레드, 프로세스, 코어의 수는 많을 수록 좋을까요? (1) 2025.01.07 단위 테스트와 통합 테스트의 차이점은 무엇인가요? (1) 2025.01.02 댓글