CS Repo/HTTP 완벽 가이드

URL과 리소스

조금씩 차근차근 2025. 3. 24. 23:15

본 내용은 "HTTP 완벽 가이드" 내용을 참고하여 기록한 정리본입니다.

  • 게시할 내용
    • URL 문법 및 컴포넌트
      • URL의 각 구성 요소가 가지는 의미와 역할을 설명한다.
    • 단축 URL
      • 여러 웹 클라이언트에서 지원하는 상대 URL과 확장 URL 등 단축 URL에 관한 내용을 다룬다.
    • URL 인코딩 및 문자 규칙
      • URL 작성 시 사용되는 인코딩 방식과 문자 사용 규칙에 대해 설명한다.
    • 공통 URL 스킴
      • 다양한 인터넷 정보 시스템에서 채택하는 URL 스킴에 대해 살펴본다.
    • URN
      • URL과는 구분되는 리소스 명명 방식인 URN에 대해 설명한다.

URI란?

URI는 리소스를 식별하는 방식으로, HTTP와는 별개로 독립적인 개념이다. 주로 다른 프로토콜과 결합되어 특정 리소스를 명시하는 데 사용된다.

  • 리소스 명명 방식
    • URI는 리소스를 이름으로 식별할 수 있는 체계를 제공한다.
  • HTTP와의 차별성
    • HTTP와는 별개의 개념으로, 다른 프로토콜과 함께 사용되어 특정 리소스를 지정하는 데 활용된다.
  • 분류
    • URL (Uniform Resource Locator)
      • 위치 기반 리소스 표기 방식으로, 사실상 URL = URI의 의미로 사용된다.
    • URN (Uniform Resource Name)
      • 이름 기반 리소스 표기 방식으로, 상대적으로 덜 사용된다.

URL 문법

URL은 정해진 구조와 규칙에 따라 작성된다.

  • 구조
    • 기본적인 URL의 형태와 계층적 구조를 이해하는 것이 필수적이다.

URL의 구조. 출처: MDN

  • 스킴
    • 사용되는 프로토콜을 나타내며, 예를 들어 http, https 등이 있다.
  • 호스트와 포트
    • 접속 대상 서버와 해당 서버의 포트를 지정한다.
  • 사용자 이름과 비밀번호
    • 일반적으로 사용되지는 않으나, 이메일과 같은 특정 경우에 사용될 수 있다.
  • 경로
    • 서버 내 특정 리소스에 접근하기 위한 경로를 의미한다.
  • 매트릭스 파라미터
    • 웹에서는 거의 사용되지 않는 구성 요소이다.
    • 경로 뒤에 세미콜론(;) 을 이용해 추가 가능하다.
  • 쿼리
    • 추가적인 파라미터를 전달하기 위한 구성 요소이다.
  • 프래그먼트
    • 문서 내 특정 위치를 지정하는 역할을 한다.

브라우저가 HTTP 요청 시 도메인 주소를 사용하는 이유

브라우저가 HTTP 요청을 보낼 때, IP 주소 대신 도메인 주소를 사용하는 이유는 다음과 같이 요약할 수 있다.

  • 가상 호스팅 지원
    • Host 헤더: HTTP/1.1부터 요청 메시지에 Host 헤더가 필수로 포함된다.
    • 여러 웹사이트 지원: 하나의 IP 주소에 여러 웹사이트를 호스팅할 경우, Host 헤더를 통해 요청 대상 사이트를 구분할 수 있다.
  • TLS 및 SNI 기능
    • 보안 연결 지원: HTTPS 연결 시 클라이언트가 도메인 이름을 전송하여 서버가 올바른 SSL/TLS 인증서를 선택하도록 한다.
    • 여러 도메인 인증서 관리: 하나의 IP 주소에서 여러 도메인을 운영할 때 필수적인 기능이다.
  • 네트워크 관리 및 운영의 유연성
    • DNS 시스템: 도메인 이름은 DNS를 통해 최신 서버 IP 주소와 매핑된다.
    • 유지보수 용이: 서버의 실제 IP 주소가 변경되더라도 DNS 레코드만 업데이트하면 되므로 운영에 유연성을 제공한다.

단축 URL

단축 URL은 절대 URL과 상대 URL 개념을 통해 다양한 방식으로 활용된다.

  • 절대 URL
    • 웹 브라우저에서 링크를 삽입할 때 사용하는 완전한 URL 구조를 의미한다.
  • 상대 URL
    • 기저 URL을 기준으로 상대적인 경로(./index.html)를 지정하며, 이를 절대 URL로 변환하는 알고리즘이 존재한다.

  • URL 확장
    • 호스트 명 확장: 기본 호스트 이름에 추가 정보를 덧붙이는 방식이다.
    • 히스토리 확장: URL 변형을 통해 접근 기록을 관리할 수 있다.

URL의 인코딩과 문자 규칙

URL은 기본적으로 아스키 문자만을 사용할 수 있으며, 이를 보완하기 위해 인코딩 규칙이 존재한다.

  • 아스키 코드 제한
    • URL에는 아스키 문자만 사용 가능하므로, 다른 문자는 인코딩을 필요로 한다.
  • 퍼센트 인코딩
    • 허용되지 않는 문자를 % 기호와 함께 이스케이프 처리하여 URL에 포함시킨다.
  • URL 문자 제한
    • 예약어: 특정 문자들이 예약어로 사용되며, URL 내에 들어갈 수 없다.
    • 출력되지 않는 ASCII 문자: URL 내에 포함되어서는 안 되는 문자들이 존재한다.
    • 특수 문자 < >: HTML 등 다른 환경에서 별도의 역할을 하기 때문에 URL 범위를 벗어나지 않도록 관리된다.

예약어 목록. RFC 3986에서 확인 가능하다.

참고: HTTP 이외에 URL을 사용하는 프로토콜

URL은 HTTP 외에도 다양한 프로토콜에서 사용된다.

  • mailto
    • 이메일 전송을 위한 스킴으로, RFC 5322를 참조한다.
  • ftp
    • 파일 전송 프로토콜로, 서버와 클라이언트 간 파일 전송에 사용된다.
  • file
    • 로컬 시스템 상의 파일에 직접 접근하기 위한 프로토콜이다.
  • telnet
    • 대화형 서비스 프로토콜로, 리소스를 URL 형태로 지정하여 접근할 수 있다.

URN

URN은 리소스의 위치와 이름을 분리하여 관리할 수 있도록 설계된 명명 체계이다.

  • 장점
    • "위치"와 "파일 이름"의 책임을 분리하여, 파일 이름은 유지하면서 파일의 위치를 변경할 수 있다.
  • 단점
    • 파일의 실제 위치를 찾기 위한 새로운 인프라가 필요하다는 점에서 실용성이 떨어질 수 있다.
    • 따라서, 실제로 잘 사용되지는 않는다.

더욱 자세한 내용은, RFC3986 에서 참고 가능하다.

'CS Repo > HTTP 완벽 가이드' 카테고리의 다른 글

웹 서버  (0) 2025.04.04
HTTP 커넥션 관리 최적화 기법  (0) 2025.04.03
HTTP에서 바라본 TCP 커넥션 관리 방식  (0) 2025.03.27
HTTP 메시지  (0) 2025.03.25
HTTP란?  (0) 2025.03.24