개인공부/[Web] / / 2020. 10. 15. 17:17

웹 URL입력시 네트워크 과정

클라이언트에서 URL입력시 서버로 요청과 응답으로 웹페이지가 띄워지는 네트워크 과정을 간단하게 정리해보자.

 

1. 웹 주소창에 URL입력

 

schem은 http,https,ftp 같은 프로토콜

port는 필요하지만 생략될수있다. (생략된경우 기본 포트로 적용-wellknow port)

path는 자원 경로

query &를 통해 추가 가능하고 검색 질의로 사용

fragment 유일하게 서버로 전달되지않는 요소라는데 SPA에 사용된다한다.

 

 

2. URL의 주소로 이동 웹 브라우저가 입력한 URL을 분석

 

1)URL 구조가 맞지 않는경우-> 사용 중인 웹 브라우저의 검색엔진으로 입력어를 검색한다.

2)URL 구조가 맞는 경우-> HSTS (HTTP Strict transport security) 목록을 받아와 url 내의 주소와 목록의 주소가 일치하면, https로 그렇지 않으면 http로 첫 요청을 보낸다.

 

 

3. DNS(Domain Name Server)에 내가 접근하려는 IP 주소 요청

 

 

4. IP주소를 받으면 ARP를 통해 최종목적지의 IP주소를 할당받은 녀석의 MAC주소를 추적한다.

 

1)router내에 존재할경우(Local Network) routing table추적하여 MAC주소를 알아낸다.

※ MAC주소 : 네트워크에서 서로를 구분하기위해 디바이스마다 할당된 48비트 주소(앞 6자리는 제조사, 뒤 6자리는 제조사가 붙이는 6자리 주소)로 통신을 위해서는 MAC주소를 알아야한다. 모르면 IP주소로 ARP를 통해 MAC주소를 알아냄.  

(IP주소는 호스트나 라우터에 할당된 32bit주소(IPv4)다. MAC주소는 2계층에서 사용하는 NIC에 할당된 고유 식별주소다. 아래 그림 참고) 

참고 사이트 : http://melonicedlatte.com/network/2018/12/24/161629.html

 

 

2)Local Network내에 없는 경우 gateway를 타고나가 상대방의 MAC주소를 찾아냄

3)상대방의 IP와 MAC주소를 받아내면 다시 DNS 프로세스 시작

 

 

5. 알아낸 주소로 대상과 TCP 통신으로 Socket을 연다

 

1) OSI 7계층을 통해 클라이언트에서 서버까지 데이터 전달 및 세션 연결

2) 이때, OSI(4계층-transport Layer)에서 Session을 연결할 때 TCP 연결을 진행 (3way handshaking)

 

 

6. HTTPS면 TLS/SSL(Secure Socket Layer) hand shake 과정 추가

 

 

7. HTTP 요청

 

ex)

GET / HTTP/1.1

Host: google.com

Connection: close

[other headers]

 

 

8. HTTP 응답

 

HTTPD(HTTP Daemon)서버가 응답 (Apache또는 Nginx가 이에 해당)

 

 

9.웹 브라우저가 그린다

 

-응답받은 HTML, CSS, JS, 이미지 등 분석후 렌더링을 통해 웹브라우저에 페이지를 띄워준다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고:

futurists.tistory.com/95

 

velog.io/@directorhwan59/%EC%9B%B9-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%97%90-URL%EC%9D%84-%EC%9E%85%EB%A0%A5%ED%95%98%EA%B3%A0-%EC%B2%AB-%ED%99%94%EB%A9%B4%EC%9D%B4-%EC%B6%9C%EB%A0%A5%EB%90%98%EA%B8%B0%EA%B9%8C%EC%A7%80

 

 

'개인공부 > [Web]' 카테고리의 다른 글

HTTP의 구조  (0) 2020.11.19
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유