CS Repo/HTTP 완벽 가이드
URL과 리소스
조금씩 차근차근
2025. 3. 24. 23:15
본 내용은 "HTTP 완벽 가이드" 내용을 참고하여 기록한 정리본입니다.
- 게시할 내용
- URL 문법 및 컴포넌트
- URL의 각 구성 요소가 가지는 의미와 역할을 설명한다.
- 단축 URL
- 여러 웹 클라이언트에서 지원하는 상대 URL과 확장 URL 등 단축 URL에 관한 내용을 다룬다.
- URL 인코딩 및 문자 규칙
- URL 작성 시 사용되는 인코딩 방식과 문자 사용 규칙에 대해 설명한다.
- 공통 URL 스킴
- 다양한 인터넷 정보 시스템에서 채택하는 URL 스킴에 대해 살펴본다.
- URN
- URL과는 구분되는 리소스 명명 방식인 URN에 대해 설명한다.
- URL 문법 및 컴포넌트
URI란?
URI는 리소스를 식별하는 방식으로, HTTP와는 별개로 독립적인 개념이다. 주로 다른 프로토콜과 결합되어 특정 리소스를 명시하는 데 사용된다.
- 리소스 명명 방식
- URI는 리소스를 이름으로 식별할 수 있는 체계를 제공한다.
- HTTP와의 차별성
- HTTP와는 별개의 개념으로, 다른 프로토콜과 함께 사용되어 특정 리소스를 지정하는 데 활용된다.
- 분류
- URL (Uniform Resource Locator)
- 위치 기반 리소스 표기 방식으로, 사실상 URL = URI의 의미로 사용된다.
- URN (Uniform Resource Name)
- 이름 기반 리소스 표기 방식으로, 상대적으로 덜 사용된다.
- URL (Uniform Resource Locator)
URL 문법
URL은 정해진 구조와 규칙에 따라 작성된다.
- 구조
- 기본적인 URL의 형태와 계층적 구조를 이해하는 것이 필수적이다.
- 스킴
- 사용되는 프로토콜을 나타내며, 예를 들어
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 범위를 벗어나지 않도록 관리된다.
참고: HTTP 이외에 URL을 사용하는 프로토콜
URL은 HTTP 외에도 다양한 프로토콜에서 사용된다.
- mailto
- 이메일 전송을 위한 스킴으로, RFC 5322를 참조한다.
- ftp
- 파일 전송 프로토콜로, 서버와 클라이언트 간 파일 전송에 사용된다.
- file
- 로컬 시스템 상의 파일에 직접 접근하기 위한 프로토콜이다.
- telnet
- 대화형 서비스 프로토콜로, 리소스를 URL 형태로 지정하여 접근할 수 있다.
URN
URN은 리소스의 위치와 이름을 분리하여 관리할 수 있도록 설계된 명명 체계이다.
- 장점
- "위치"와 "파일 이름"의 책임을 분리하여, 파일 이름은 유지하면서 파일의 위치를 변경할 수 있다.
- 단점
- 파일의 실제 위치를 찾기 위한 새로운 인프라가 필요하다는 점에서 실용성이 떨어질 수 있다.
- 따라서, 실제로 잘 사용되지는 않는다.
더욱 자세한 내용은, RFC3986 에서 참고 가능하다.