[HTTP] URL Resource

참고 도서 : HTTP 완벽 가이드

URL과 리소스

학습 목표

  • URL 문법, 여러 URL 컴포넌트가 어떤 의미를 가지고 무엇을 수행하는지
  • 웹 클라이언트가 지원하는 상대 URL과 단축 URL에 대해서
  • URL의 인코딩과 문자 규칙
  • 여러 인터넷 정보 시스템에 적용되는 공통 URL 스키마
  • 기존 이름은 유지하면서 객체들은 다른 장소로 옮기는 것을 가능하게 해주는 URN을 포함한 URL의 미래

인터넷의 리소스 탐색하기

URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리킨다. URL을 통해 사람이 HTTP 및 다른 프로토콜을 통해 접근할 수 있다.

URL은 통합 자원 식별자(Uniform Resource Identifier) 혹은 URI라고 불리는 일반화된 부류의 부분집합이다. URI는 두 가지 주요 부분집합인 URLURN으로 구성된 종합적인 개념이다.

URN은 현재 그 리소스가 어디에 존재하든 상관없이 그 이름만으로 리소스를 식별하지만, URL은 리소스가 어디 있는지 설명해서 리소스를 식별한다.

HTTP 명세에서는 URI를 더 일반화된 개념의 URL로 사용한다. 대부분 URL을 가리키는 것으로 보면 될 것이다.

  • URL의 첫 부분인 httpURL의 스키마다. 스키마는 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다. URLHTTP 프로토콜을 사용한다는 의미이다.
  • URL의 두 번째 부분은 서버의 위치를 말한다. 이는 웹 클라이언트가 리소스가 어디에 호스팅 되어 있는지 알려준다.
  • URL의 세 번째 부분은 리소스의 경로이다. 경로는 서버에 존재하는 로컬 리소스들 중에서 요청받은 리소스가 무엇인지 알려준다.

FTP (File Transfer Protocol) : 서버에 올라가 있는 파일

대부분의 URL은 동일하게 스키마://서버위치/경로 구조로 이루어져 있다.

URL이 있기 전

URL이 있기 전엔 애플리케이션마다 달리 가지고 있는 분류 방식을 사용하였다.

URL 문법

URL 문법을 스키마에 따라서 달라진다. 대부분의 URL은 일반 URL 문법을 따르며, 서로 다른 URL 스키마도 형태와 문법 면에서 유사하다.

스키마의 예 : HTTP, FTP, SMTP

스키마://사용자:비밀번호@호스트:포트/경로;파라미터?질의#프래그먼트

  • 스키마 : 리소스를 가져올 때 어떤 프로토콜을 사용하여 서버에 접근해야 하는지
  • 사용자 이름 : 몇몇 스키마는 리소스에 접근하기 위해 필요하다
  • 비밀번호 : 사용자의 비밀번호
  • 호스트 : 서버 호스트 명이나 IP주소
  • 포트 : 리소스를 호스팅하는 서버가 열어놓은 포트번호
  • 경로 : 서버 내 리소스가 서버 어디에 있는지
  • 파라미터 : 이름/값을 쌍으로 가진다. 다른 파라미터와는 ;로 구분
  • 질의 : 스키마에서 애플리케이션에 파라미터를 전달할 때 쓰인다
  • 프래그먼트 : 리소스의 조각이나 일부분을 가리키는 이름이다.

단축 URL

상대 URL

주로 봐왔던 것이 절대 URL이다. 절대 URL은 리소스에 접근하는데 필요한 모든 정보를 가지고 있다.

상대 URL은 모든 정보를 담고 있지는 앟ㄴ다. 상대 URL로 리소스에 접근하는데 필요한 정보를 얻기 위해서는 기저(base)라고 하는 다른 URL을 사용해야 한다.

./example.html

URL 확장

어떤 브라우저는 URL을 입력한 다음이나 입력하고 있는 동안에 자동으로 URL을 확장한다. 자동으로 URL이 확장되기 때문에 URL 전체를 입력하지 않아도 된다.

  • 호스트 명 확장 : 단순한 휴리스틱만을 사용해서 입력한 호스트 명을 전체 호스트 명으로 확장할 수 있다.
  • 히스토리 확장 : 과거에 사용자가 방문했던 URL의 기록을 저장해 놓는 것

안전하지 않은 문자

안전한 전송이란, 정보가 유실될 위험 없이 URL을 전송할 수 있다는 것을 의미한다.

인코딩

스키마

  • http : 일반 URL 포맷을 지키는 스키마, 포트값 생략시 기본값 80
  • https : http 스키마와 거의 같다. 다른 점은 http 커넥션의 양 끝단에서 암호화하기 위해 보안 소켓 계층(Secure Sockets Layer, SSL)을 사용한다. 기본 포트값은 443
  • mailto : 이메일 주소를 가리키고, 다른 스키마와는 다르게 동작하기 때문에 mailto URL은 표준 URL과는 다른 포맷을 가진다.
  • ftp : 파일 전송 프로토콜 URL은 일반 URL 포맷이다.
  • rtsp, rtspu : 실시간 스트리밍 프로토콜 rtspu는 UDP 프로토콜이 사용된다는 뜻
  • file : 주어진 로컬에서 바로 접근할 수 있는 파일
  • news : 특정 문서나 뉴스 그룹에 접근시 사용
  • telnet : 대화형 서비스에 접근하는 데에 사용