상세 컨텐츠

본문 제목

HTTP 웹 기본 지식 URI와 웹 브라우저 요청 흐름

Coding/Network

by hwlink 2022. 3. 13. 10:41

본문

 

강의 '모든 개발자를 위한 HTTP 웹 기본 지식'를 듣고 학습한 내용을 개인적으로 정리한 글 입니다.

목차

  1. URI
  2. URL, URN
  3. URL
  4. 웹 브라우저 요청흐름

URI

리소스를 식별하는 통합된 방법, URL, URN 포함한다. 주로 URL만 사용한다.

로케이터, 이름 또는 둘 다 추가로 분류될 수 있다.

Uniform: 리소스 식별하는 통일된 방식

Resource: 자원, URI로 식별할 수 있는 모든 것 (제한없음)

Identifier: 다른 항목과 구분하는데 필요한 정보


URL, URN

  • URL: Locator: 리소스가 있는 위치를 지정
  • URN: Name: 리소스에 이름을 부여 (위치는 변할 수 있지만 이름을 변하지 않는다.)
    • ex) urn:isbn:8960777331 (서점에 가면 보이는 책의 isbn URN)
    • URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았다.
    • 대부분 URI를 URL과 같은 의미로 사용한다.

URL

  • 문법
    scheme://[userinfo@]host[:port][/path][?query][#fragment]

https://www.google.com:443/search?q=hello&hi=ko

  • 프로토콜(https)
    • scheme 주로 프로토콜 사용
    • 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙이다. ex)http, https, ftp 등
    • http는 80포트, https는 443포트를 주로 사용, 포트는 생략 가능합니다.
  • userinfo
    • URL에 사용자정보를 포함해서 인증
    • 거의 사용하지 않음
  • 호스트명(www.google.com)
    • 도메인명 또는 IP주소 직접 입력
  • 포트
    • 접속포트
    • 일반적으로 생략, 생략 시에는 http는 80, https는 443
  • 패스(/search)
    • 리소스 경로, 계층적구조에 사용
    • /home/file1.jpg, /members, /members/100, /items/iphone12
  • 쿼리 파라미터(q=hello&hi=ko)
    • key=value 형태
    • ?로 시작, &로 추가 가능 ?keyA=valueA&keyB=valueB
    • query parameter, query string으로 불림, 웹서버에 제공하는 파라미터 문자형태
  • fragment
    • html 내부 북마크 등에 사용
    • 서버에 전송하는 정보는 아님

(본 페이지 상단 목차가 이런 fragment에 해당한다. 내부링크)


웹 브라우저 요청흐름

웹브라우저에서 구글로 요청

  1. 구글에 접속을 하게되면
  2. 구글서버를 찾는다. DNS조회, IP도출
  3. http 요청 메세지를 생성한다.

왼쪽 패킷정보, 오른쪽 웹 요청흐름

생성된 IP에 이전 시간에 정리한 출발지 PORT, 도착지 PORT를 추가해주는 TCP/IP + 전송 http메세지가 담긴다.

서버도착

  1. 웹 ------ 구글 사이 수 많은 노드들을 통해서 구글서버에 패킷이 도착한다.
  2. 요청패킷을 다 깐 뒤 http 메세지를 확인한다(HTTP 요청 메세지: GET/search?q=hello&hi=ko HTTP/1.1 , Host:www.google.com
  3. 요청메세지에 해당하는 내용을 찾는다.
  4. 응답 메세지를 만들어냅니다.

  1. 이후 웹에서 서버로 보낸 것 같이 TCP/IP로 감싸서 다시 요청한 웹으로 전송합니다.
  2. 응답 메세지를 받은 웹에선 HTTP 응답 메세지를 확인하여 렌더링합니다.

마무리

희미하게 알고있던 웹브라우저에서 검색을 했을 시에 어떤 일이 일어나는지 정확하게 이해하게 되었고, http에 대하여 깊이 들어갈수록 흥미로운 점이 많았습니다.



'Coding > Network' 카테고리의 다른 글

HTTP 웹 기본 지식 모든것이 HTTP  (0) 2022.03.18
HTTP 웹 기본 지식 HTTP API 매서드  (0) 2022.03.18
HTTP 웹 기본 지식 인터넷 네트워크  (0) 2022.03.11
[CS/Network] HTTP  (0) 2021.12.05
[CS/Network] RESTFUL API  (0) 2021.12.04

관련글 더보기