[HTTP완벽가이드] 02. URL과 리소스
02 URL과 리소스
요약
- URI는 리소스의 위치를 표현하는 주소이다.
- URL은
스킴://서버주소/리소스경로
형식으로 표현한다 - 상대경로로 표현된 URI는 기저URL을 통해 완전한 URI로 변환된다.
- URL에 안전하지 않은 문자가 들어간 경우, 이를 이스케이프해야 한다.
URL: 웹 리소스의 위치를 표현하는 형식
# 형식
{스킴}://{사용자이름}:{비밀번호}@{호스트}:{포트}/{경로};{파라미터}?{쿼리}#{프래그먼트}
# 예시
- http://www.joes-hardware.com:80/index.html
- ftp://ftp.prep.ai.mit.edu/pub/gnu
- ftp://anonymous@my_password@ftp.prep.ai.mit.edu/pub/gnu
- http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true
- http://www.joes-hardware.com/inventory-check.cgi?item=12731&color=blue
- http://www.joes-hardware.com/tools.html#drills
- 스킴: 사용할 프로토콜
- 호스트와 포트: 포트번호 생략 시, 각 프로토콜의 기본 포트번호를 사용
- 사용자이름과 비밀번호: 생략 시 각각 기본 값을 사용
- 경로:
/
문자로 나뉘는 리소스의 위치 - 파라미터: 경로조각 별로 파라미터를 가질 수 있음,
이름=값
형식 - 쿼리:
&
로 나뉜이름=값
형식 지원 - 프래그먼트: 프래그먼트는 서버에 전송되지 않음. 서버로부터 문서 객체를 받은 뒤 클라이언트에서 프래그먼트로 스크롤 처리
단축 URL
상대 URL
<!-- 상대URL의 예 -->
<a href="./hammers.html">
상대URL은 부족한 URL 정보를 기저 URL을 통해 얻는다.
기저URL: http://www.joes-hardware.com/tools.com
상대URL: ./hammers.html
기저URL의 스킴, 호스트, 포트 번호를 상속 받아 http://www.joes-hardware.com/hammers.html 로 설정
기저 URL 설정 방법
<base>
태그로 기저 URL을 명시적으로 설정할 수 있음<base href="http://www.example.com/page.html"> <base target="_blank" href="http://www.example.com/page.html">
- 명시적으로 설정하지 않으면 현재 리소스의 위치로 설정됨
URL 인코딩: 안전하지 않은 문자를 전달하는 방식
URL 인코딩
- 일반적으로 URL로 알파벳 문자를 사용함
- 알파벳이 아닌 문자가 URL에 포함되어야 하는 경우, 이스케이프 처리가 필요
- 클라이언트 애플리케이션에서 안전하지 않거나 제한된 문자를 변환하는 것이 좋음