[HTTP] URI와 웹 브라우저 요청 흐름

2024. 6. 25. 15:41·HTTP

URI와 웹 브라우저 요청 흐름

URI(Uniform Resource Identifier)

  • 리소스를 식별하는 통합된 방법.
  • Uniform : 리소스 식별하는 통일된 방식
  • Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음)
  • Identifier : 다른 항목과 구분하는데 필요한 정보

URI? URL? URN?

  • URI는 로케이터(locater), 이름(name) 또는 둘 다 추가로 분류될 수 있다

  • URL : Uniform Resource Locater, 리소스가 있는 위치를 지정
    • 우리가 웹 브라우저에 적는 것
  • URN : Uniform Resource Name, 리소스에 이름을 부여
    • ex) ISBN
      • urn:isbn:12345678 (어떤 책의 isbn URN)
    • URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음
  • URL을 주로 사용하고, URN은 거의 사용하지 않음

URL 분석

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
    • ex) https://www.google.com:443/search?q=hello&hl=ko
    • 프로토콜 : https
    • 호스트명 : www.google.com
    • 포트번호 : 443
    • 패스 : /search
    • 쿼리 파라미터(q=hello&hl=ko)

scheme

  • 주로 프로토콜 사용
    • 프로토콜 : 어떤 방식으로 자우너에 접근할 것인가 하는 약속 규칙
      • ex) http, https, ftp 등등
  • http는 80 포트, https는 443 포트를 주로 사용, 포트는 생략 가능
  • https는 http에 보안 추가 (HTTP Secure)

userinfo

  • URL에 사용자정보를 포함해서 인증해야 할 때 사용됨
  • 거의 사용하지 않음

host

  • 호스트명
  • 도메인 또는 IP 주소를 직접 사용 가능

PORT

  • 접속 포트
  • 일반적으로 생략 가능, 생략할 때 일반적으로 HTTP는 80, HTTPS는 443이다.

path

  • 리소스 경로(path), 계층적 구조로 되어 있다
  • ex)
    • /home/file1.jpg
    • /members
      • /members/100, items/iphone14

query

  • key=value 형태
  • ?로 시작, &로 추가 가능
    • ?keyA=valueA&keyB=valueB
  • query parameter, query string 등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태
    • 웹서버에 보통 제공하는 파라미터 정보가 String 형태로 전달되서 이렇게 불린다고 한다

fragment

  • scheme://[userinfo@]host[:port][/path][?query][#fragment]
    • ex) https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-introducing-spring-boot
  • fragment
  • html 내부 북마크 등에 사용
  • 서버에 전송하는 정보 아님
  • ex) html 내부에서 중간으로 이동할 때

웹 브라우저 요청 흐름

이미 컴퓨터 네트워크 표준 프로토콜 글에서 다룬 내용이므로 자세한 설명은 생략합니다

 

 

HTTP 메시지 전송

 

 

 

 

 

 

Ref) 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런, 김영한 강의

'HTTP' 카테고리의 다른 글

[HTTP] HTTP 메서드 활용 - HTTP API 설계 예시  (0) 2024.07.08
[HTTP] HTTP 메서드 활용 - 클라이언트에서 서버로 데이터 전송  (0) 2024.07.08
[HTTP] HTTP 메서드  (0) 2024.06.30
[HTTP] HTTP 기본: 비 연결성, HTTP 메시지  (0) 2024.06.25
[HTTP] HTTP 기본: 클라이언트-서버 구조, Stateful, Stateless  (0) 2024.06.25
'HTTP' 카테고리의 다른 글
  • [HTTP] HTTP 메서드 활용 - 클라이언트에서 서버로 데이터 전송
  • [HTTP] HTTP 메서드
  • [HTTP] HTTP 기본: 비 연결성, HTTP 메시지
  • [HTTP] HTTP 기본: 클라이언트-서버 구조, Stateful, Stateless
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기 (463)
      • 개발 일지 (0)
        • Performance (0)
        • TroubleShooting (0)
        • Refactoring (0)
        • Code Style, Convetion (0)
        • Architecture (0)
      • Software Engineering (36)
        • Test (8)
        • 이론 (18)
        • Clean Code (10)
      • Java (72)
        • Basic (5)
        • Core (21)
        • Collection (7)
        • 멀티스레드&동시성 (13)
        • IO, Network (8)
        • Reflection, Annotation (3)
        • Modern Java(8~) (13)
        • JVM (2)
      • Spring (53)
        • Framework (12)
        • MVC (23)
        • Transaction (3)
        • AOP (11)
        • Boot (0)
        • AI (0)
      • DB Access (16)
        • Jdbc (1)
        • JdbcTemplate (0)
        • JPA (14)
        • Spring Data JPA (0)
        • QueryDSL (0)
      • Computer Science (130)
        • Data Structure (27)
        • OS (14)
        • Database (10)
        • Network (21)
        • 컴퓨터구조 (6)
        • 시스템 프로그래밍 (23)
        • Algorithm (29)
      • HTTP (8)
      • Infra (1)
        • Docker (1)
      • 프로그래밍언어론 (15)
      • Programming Language(Sub) (77)
        • Kotlin (1)
        • Python (25)
        • C++ (51)
        • JavaScript (0)
      • FE (11)
        • HTML (1)
        • CSS (9)
        • React (0)
        • Application (1)
      • Unix_Linux (0)
        • Common (0)
      • PS (13)
        • BOJ (7)
        • Tip (3)
        • 프로그래머스 (0)
        • CodeForce (0)
      • Book Review (4)
      • Math (3)
        • Linear Algebra (3)
      • AI (7)
        • DL (0)
        • ML (0)
        • DA (0)
        • Concepts (7)
      • 프리코스 (4)
      • Project Review (6)
      • LegacyPosts (11)
      • 모니터 (0)
      • Diary (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
lumana
[HTTP] URI와 웹 브라우저 요청 흐름
상단으로

티스토리툴바