TOC
1. 검색창에 URL을 입력하고 Enter 키 입력한다.
URL인 https://jungmin.xyz/posts
을 입력한다.
###✨ URL (Uniform Resoucre Locator)
- 리소스의 정확한 위치 정보를 나타낸다.
https://www.naver.com:3000/posts/post/post=transaction#section1
scheme | host | :port | /path | ?query | #fragment |
---|
https:// | www.naver.com | :3000 | /posts | ?post=transaction | #section1 |
명칭 | 예시 | 설명 |
---|
scheme | https:// | 통신 프로토콜을 결정한다. |
host | ww.naver.com,127.0.0.1 | 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹서버, 도메인 또는 IP |
port | :3000 | 웹 서버에 접속하기 위한 통로 |
path | /posts | 웹 서버의 루트 디렉토리 부터 파일이 위치까지의 경로 |
query | post=transaction?page=1 | 리소스의 형식 범위를 좁힘 |
fragment | #section | URL이 지정하는 자원의 세부 부분을 지정 |
http와 https의 차이점
- 자원의 위치 뿐만 아니라 자원에 대한 고유 식별자로서 URL을 의미를 포함한다.
✨ URL과 URI
- URI는 웹자원을 식별하고 URL은 리소스의 위치를 찾아낸다.
- URI는 URL를 포함한다. ( 모든 URL은 URI가 될 수 있다.)
- 둘 다 인터넷 상의 리소스(데이터)를 파악하는데 사용한다.
- URL : https://naver.com
- URI : posts/page=1
- URL은 http와 같은 프로토콜로 리소스 위치를 찾아내는 데 사용된다.
2. 웹 브라우저가 도메인명의 IP 주소를 조회한다.
- 브라우저는 인터넷에 연결한 서버를 파악할 때 IP주소를 조회한다.
- DNS 조회를 사용하여 이 작업을 수행한다.
✨ DNS (Domain Name System)
- 인터넷 상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신할 때 숫자 형식인 IP주소를 이용한다. 긴 숫자를 기억해 입력할 필요 없이 naver.com과 같이 도메인 이름을 이용해 웹사이트를 이용한다.
- 도메인 이름(naver.com)을 IP주소(192.0.0.1)로 변환한다.
✨ Name Server
✨ DNS는 다양한 위치에서 임시로 저장된다
2-1. hosts 파일을 확인한다.
- hosts 파일은 DNS를 통해서 IP 정보를 얻기 전에 먼저 검색하는 개인 URL 주소록이라 할 수 있다.
2-2. DNS 캐시를 확인한다.
- DNS 네임서버가 한번 요청된 DNS 요청을 메모리에 저장해 둬 반복적인 DNS 조회를 방지한다.
2-3. ISP의 DNS 서버에 DNS 쿼리를 보낸다.
- 2-1번과 2-2번에서 해당 도메인의 IP 주소를 찾지 못했을 때 브라우저는 운영체제에 설정된 DNS 서버로 DNS 쿼리를 보낸다.
- ISP의 DNS 서버는 Root DNS 서버부터 순서대로 찾아 IP 주소를 찾는다.
- IP주소를 찾으면 DNS 캐시(램 메모리)에 저장한다.
DNS 동작방식(미작성)
✨ ISP
- 사용자에게 인터넷 서비스를 제공하는 조직 또는 기업을 나타낸다.
3. 웹 브라우저가 서버와의 TCP 연결을 시작한다.
- TCP을 사용하여 라우터를 통해 이동하여 라우팅 테이블을 따라서 연결할 IP주소가 있는 웹 서버를 찾는다.
- 웹 서버에 직접 도달하기 보다 요즘에는 CDN를 사용하여 웹 브라우저 가까이에 위치 시킨다.
- 웹 브라우저가 서버를 찾으면 웹 서버와 TCP 연결을 설정한다.
- HTTPS를 사용하는 경우 주고 받는 데이터의 암호화를 위한 TLS 핸드셰이크라는 과정을 추가한다.
http와 https의 차이점
✨라우터 (Router)와 라우팅(Routing)
- 라우터 컴퓨팅 디바이스와 네트워크를 다른 네트워크로 연결하는 네트워킹 디바이스이다.
- 라우팅은 IP주소를 바탕으로 데이터가 도착지까지 갈 수 있는 최적의 경로를 찾는 기술을 의미한다.
- 라우터는 라우팅 테이블을 갖고 있다.
- 지연,용량 및 속도와 같은 네트워크 지표를 분석하여 최상의 경로를 찾으려고 시도한다.
- 선택한 경로의 다음 디바이스로 데이터를 전달한다.
- 경우에 따라 라우터가 여러 경로를 사용하여 동일한 데이터 패킷의 여러 사본을 전송할 수 있다.(로드 벨런싱)
✨CDN
- 콘텐츠를 사용자에게 더 가까이 제공하여 사이트의 원본 연결 성능을 개선하는 캐싱 서버의 글로벌 분산 네트워크이다.
✨TCP(Transmission Control Protocol)
- 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜이다.
- TCP 연결 기반이므로 데이터를 전송하는 동안 수신자와 발신자 사이에 연결을 설정하고 이를 유지한다.
TCP Handshake,TCP와 UDP차이점(미작성)
4. 웹 브라우저가 HTTP 요청을 서버로 전송한다.
- 서버에 연결이 되면 HTTP(S) 프로토콜에 대한 통신 규칙을 따라 HTTP 요청을 시작한다.
5. 웹 서버가 요청을 처리하고 응답을 다시 전송
HTTP 요청과 응답(미작성
6. 웹 브라우저가 콘텐츠 렌더링
- 응답 헤더를 확인하여 리소스를 렌더링한다.
- html,css,img,js 를 순서대로 가져와 렌더링한다.
- 디스크에 캐싱해 다시 접속하면 디스크를 읽어 화면에 출력한다.
참고
참고
URL
URL과URL의차이
DNS
DNS서버유형
라우팅
TCP