URI와 웹 브라우저 요청 흐름
포스트
취소

URI와 웹 브라우저 요청 흐름

URI (Uniform Resource Identifier)

  • 리소스를 식별하는 통합된 방법
  • 인터넷 상의 자원을 식별하는 문자열
  • 웹 페이지, 이미지, 동영상 등 다양한 자원을 포함한다.
  • 비유 : 사람을 식별하는 모든 정보 (이름, 주소, 주민번호 등)
  • 예시 : http://www.example.com/index.html

URL (Uniform Resource Locator)

  • URI의 하위 집합
  • 자원의 위치와 접근 방법을 명시적으로 나타낸다.
  • 프로토콜, 호스트, 경로 등을 포함한다.
  • 비유 : 사람을 찾아가는 방법 (집 주소, 전화번호 등)
  • 예시 : https://www.google.com/search?q=URI

URN (Uniform Resource Name)

  • URI의 하위 집합
  • 자원의 이름만을 나타낸다.
  • 위치나 접근 방법은 포함하지 않는다.
  • 비유 : 사람의 이름
  • 예시 : urn:isbn:978-0-321-74713-2

URI 인코딩과 디코딩

URI 인코딩

  • URI에서 사용할 수 없는 문자를 16진수 코드의 형태인 ‘%XX’로 변환하는 과정
  • 웹 브라우저와 서버 간에 데이터를 안전하고 정확하게 전송하기 위해 필요하다.
  • 대표적인 예약어
    • ’ ‘, ‘?’, ‘&’, ‘=’, ‘#’, ‘+’, ‘/’
    • 이외에도 많이 존재한다.
  • 비예약 문자는 그대로 유지된다.
  • 예약 문자는 ‘%XX’ 형태로 변환된다.
  • 공백 문자는 ‘+’ 또는 ‘%20’으로 변환된다.
  • 한글은 유니코드 문자 코드를 사용하여 ‘%XX’ 형태로 변환된다.

URI 디코당

  • 인코딩된 URI를 다시 원래 문자로 변환하는 과정
  • 웹 서버는 요청받은 URI를 디코딩하여 해당하는 리소스를 찾고 사용자에게 제공한다.
  • ‘%XX’ 형태의 16진수 코드를 원래 문자로 변환한다.

웹 브라우저 요청 흐름

  • 예시 : https://sangwon0724.github.io/posts/spring-jpa-028/#q-type
  1. 사용자가 웹 브라우저에 URL을 입력한다.
  2. 웹 브라우저는 URL에 포함된 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 쿼리를 전송한다.
  3. DNS 서버는 도메인 이름에 해당하는 IP 주소를 반환한다.
  4. 웹 브라우저는 웹 서버에 HTTP 요청 메시지를 감싼 패킷을 생성해서 전달한다.
    • TCP/IP 계층에서 3-way handshake 과정을 통해 웹 서버와 연결된 후 메시지를 전달하는 과정을 거친다.
  5. 웹 서버는 HTTP 응답 메시지를 감싼 패킷을 생성해서 웹 브라우저로 전송한다.
  • HTTP 요청 메시지에 포함된 정보
    • 요청 메서드 (GET, POST, PUT, DELETE 등)
    • 요청 URL
    • HTTP 버전
    • 헤더 정보 (사용자 에이전트, 쿠키 등)
  • HTTP 응답 메시지에 포함된 정보
    • 응답 코드 (200 OK, 404 Not Found 등)
    • 응답 메시지
    • HTTP 버전
    • 헤더 정보 (콘텐츠 유형, 콘텐츠 길이 등)
    • 본문 (HTML, CSS, JavaScript, 이미지 등)

HTTP 요청 메시지 예시

GET posts/spring-jpa-028/#q-type HTTP/1.1
Host: https://sangwon0724.github.io

출처

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.