당장 내일 모의 면접이라 같은 조원들과 면접 준비한 내용을 정리했다
미리 공개된 질문을 각자 하나씩 맡아서 정리하기로 했고
나는 2번을 맡았다.
브라우저에 네이버 주소를 입력했을 때 네트워크 상에서 발생하는 과정을 설명해주세요
일단 2번 내용을 먼저 정리하고 추후에 조원들과 발표한 내용을 합쳐 추가로 1번 3번 을 정리해야겠다
브라우저에 www.naver.com 을 검색하면 네트워크 상에서 발생하는 과정
크롬과 같은 브라우저의 검색창에 www.naver.com 을 검색하면
브라우저는 네이버의 서버에 요청을 보내기 위해 네이버 서버의 ip주소가 필요하다.
엔터를 누르면 일단 브라우저 캐시에 검색한 도메인에 해당하는 ip주소가 있는지 확인한다,
브라우저 캐시에 없다면 운영체제의 DNS 캐시를 동일하게 확인한다
DNS 캐시에도 ip주소의 정보가 없다면 컴퓨터의 host파일을 확인한다
host 파일이란
운영체제의 내부에 위치한 네트워크 구성 파일로, 도메인 이름을 특정 IP 주소로 매핑하기 위해 사용됩니다.
이 파일은 컴퓨터가 도메인 이름을 IP 주소로 해석할 때 DNS 서버에 질의하기 전에 우선적으로 참조되는 파일입니다.
이렇게 브라우저 캐시, DNS캐시, host 파일에도 검색한 도메인에 해당하는 ip주소 정보가 없다면
그 때 운영체제는 DNS서버에 해당 도메인의 ip주소를 질의한다
DNS서버
DNS 서버는 계층 구조로 이루어져 있으며, 로컬 DNS 서버는 이 요청을 받고, 자신의 캐시에서 찾거나
루트 네임서버에서부터 순차적으로 질의하여 IP 주소를 찾습니다.
이렇게 찾은 ip주소를 브라우저에 전달하면 브라우저는 전달 받은 ip주소의 웹 서버에 TCP연결을 시도합니다.
TCP 연결을 시도하는 이유
- HTTP와 HTTPS는 애플리케이션 계층의 프로토콜로, 클라이언트와 서버 간의 데이터 교환 규칙을 정의합니다.
- TCP는 전송 계층의 프로토콜로, HTTP/HTTPS 프로토콜을 안전하고 신뢰성 있게 전송하기 위해 사용됩니다.
- HTTP/HTTPS 요청/응답은 TCP 연결 위에서 전송됩니다. 즉, 브라우저와 서버 간에 HTTP/HTTPS 메시지를 주고받으려면 반 드시 TCP 연결이 먼저 수립되어야 합니다.
TCP 연결이 수립된 이후
HTTP 통신은 80번 포트를 통해 통신하고, HTTPS 통신은 443번 포트를 이용해 통신합니다.
HTTP통신과 HTTPS 통신을 이용해 요청을 웹 서버로 보내고
웹 서버로 부터 응답을 받습니다.
꼬리질문
URL과 URI의 차이점
URL이란
인터넷상의 리소스를 식별하기 위한 일종의 주소 체계입니다.
URI는 특정 리소스를 식별하거나, 위치를 지정하는 데 사용되며, 모든 리소스를 고유하게 구분할 수 있도록 도와줍니다.
쉽게 말해, URI는 웹에서 파일, 페이지, 서비스, 데이터 등 다양한 리소스를 식별하는 고유한 식별자라고 볼 수 있습니다.
URL은 2가지 유형이 있는데 URL과 URN이다
URL
- URL은 리소스의 위치 를 나타내는 URI입니다.
- URL은 프로토콜(http), 도메인 이름(www.example.com), 경로(/index.html)로 구성되어 있어,클라이언트가 해당 리소스에 접근할 수 있도록 합니다.
URN
- URN은 리소스의 이름을 나타내는 URI로, 리소스를 위치와 관계없이 고유하게 식별합니다.
- URN은 리소스의 위치를 나타내지 않으므로, 이 URN만 가지고는 해당 리소스가 어디에 있는지 알 수 없습니다. 단지, 특정 리소스가 "이것이다"라는 고유한 식별자를 제공하는 것입니다.
정리
- URI: 인터넷상에서 리소스를 식별하기 위한 고유 식별자입니다. 리소스의 위치 또는 이름을 식별할 수 있습니다.
- URL: URI의 하위 개념으로, 특정 리소스의 위치를 나타내어 해당 리소스에 접근할 수 있도록 합니다.
- URN: URI의 하위 개념으로, 리소스의 이름을 나타내어 해당 리소스를 고유하게 식별하지만, 위치 정보는 제공하지 않습니다.