[HTTP] 섹션2. URI와 웹 브라우저 요청 흐름

2023. 8. 29. 23:31·📗 self-study/📗 inflearn

 

 

 

🔥 모든 개발자를 위한 웹 HTTP 기본 지식

 

섹션2. URI와 웹 브라우저 요청 흐름

 

 

 

 

 

📍 URI(Uniform Resource Identifier, 리소스를 식별하는 통합된 방법)

 

👉🏻 URI? URL? URN?

👉🏻 URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있음

URI
URL(Resource Locator) URN(Resource Name)
리소스 위치를 지정 리소스에 이름을 부여
- 위치는 변할 수 있지만 이름은 변하지 않음
ex) urn:isbn:8960777331(어떤 책의 isbn URN)
- URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않음
- URI = URL로 이해해도 무리 없음!

 

 

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

 

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

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

 

 

 

 

 

✅ URL 전체 문법

👉🏻 scheme://[userinfo@]host[:port][/path][?query][#fragment]

[userinfo@] URL에 사용자 정보를 포함해서 인증(거의 사용하지 않음)
host 도메인명이나 주로 IP 직접 입력
[:port] 일반 웹 브라우저에는 보통 생략하나, 특정 경로에 접속하고자 할 때는 사용함
[/path] 리소스 경로(path)
계층적 구조
[?query] key=value 형태
?로 시작 &로 추가 가능
쿼리 파라미터/쿼리 스트링(숫자를 넘겨도 문자로 넘어감) 등으로 불림
웹 서버에서 제공하는 파라미터, 문자 형태
[#fragment] html 내부 북마크 등으로 사용하며 실제로 잘 사용하지는 않음

 

👉🏻 https://www.googlw.com:443/search?q=hello&hl&ko 

 

 

👉🏻 주로 프로토콜 사용

 

👉🏻 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 규칙

ex) http, https, ftp 등

 

👉🏻 http는 80 포트, https는 443 포트를 주로 사용, 포트는 생략 가능

 

👉🏻  https는 http에 보안 추가(HTTP Secure)

 

 

 

📍 웹 브라우저 요청 흐름

👉🏻 URL 검색하면 이루어지는 일

1) DNS 조회

2) 웹 브라우저가 HTTP 요청 메시지 생성(GET /search?q=hello&hl=ko HTTP1.1 Host: www.google.com)  

3) SOCKET 라이브러리를 통해 전달

- A: TCP/IP 연결(IP, PORT)

- B: 데이터 전달

4) TCP/IP 패킷 생성, HTTP 메시지 포함

 

👉🏻 서버 도착

1) TCP/IP 패킷 까서 버림(출발지/도착지의 ip, port, 순서 등을 나타내기 때문에 확인 후 쓸모없음)

2) HTTP 메시지 해석

3) HTTP 응답 메시지 생성

// 응답 메시지 예시

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423

<html>
<body>
</body>
</html>

4) 메시지 보냄

 

👉🏻 클라이언트 도착

1) html 정보를 열어서 보여 줌 

 

 

 

저작자표시 비영리 변경금지 (새창열림)
'📗 self-study/📗 inflearn' 카테고리의 다른 글
  • [HTTP] 섹션4. HTTP 메소드
  • [HTTP] 섹션3. HTTP 기본
  • [HTTP] 섹션 1. 인터넷 네트워크
  • [자료 구조와 알고리즘] 동적 프로그래밍 - 타뷸레이션
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[HTTP] 섹션2. URI와 웹 브라우저 요청 흐름
상단으로

티스토리툴바