지난번 1장 요약 후 한 . 장 . 도 . 넘 겨 보 지 않 았 다 (반성)
ex) https://developer.mozilla.org/ko/docs/Web/HTML
https
:URL의 스킴developer.mozilla.org
: 호스트 - 서버의 위치/ko/docs/Web/HTML
: 경로 - 리소스의 경로/
로 구분한다.파라미터 : 특정 스킴에서 입력 파라미터를 기술하는 용도로 사용. 다른 컴포넌트와 ;
으로 구분.
ex) /hammers;sale=false/index.html;graphics=true
질의 문자열 : 스킴에서 애플리케이션에 파라미터를 전달하는 용도. ?
로 다른 컴포넌트와 구별. 여러 개의 파라미터를 전달할 때는 &
사용
ex) /inventory-check.cgi?item=12731&color=blue
프래그먼트 : 리소스 안에 있는 특정 부분을 가리킬 때 사용한다. 프래그먼트를 통해 HTML문서에 있는 특정 이미지나 일부분을 가리킬 수 있다. 서버는 객체 전체를 다루는 것이 일반적이기 때문에 클라이언트는 서버에 프래그먼트를 전달하지 않는다. 클라이언트는 서버로부터 전체 리소스를 내려받은 후 프래그먼트로 보고자하는 리소스의 일부를 보여준다.
ex) /tools.html#drills
나머지는 아래 사진 참고 (사용자 이름, 비밀번호)
기저 URL은 다음과 같은 방법들로 가져올 수 있다.
<base>
태그를 사용하여 기저 URL을 명시할 수 있다.(아이고 힘들어)
브라우저 주소창에 url을 입력하고 있는 동안 URL이 자동으로 완성되는 경험을 해본 적이 분명 있을 것이다 ... 그것에 대한 이야기다. 브라우저가 사용하는 기술!
주의! 프락시를 사용할 경우 이러한 URL기능은 다르게 동작할 수 있다는 것을 유념해야한다. 6장의 'URI 클라이언트 자동 확장과 호스트명 분석'에서 상세히 다룰 것이라고 한다. 참고하시길.
정보가 유실될 위험 없이 URL을 전송하는 것이 바로 안전한 전송
. SMTP같은 프로토콜은 특정 문자를 제거할 수도 있는 전송방식을 사용하는데, 이러한 일을 방지하고자 URL에 일반적으로 알파벳 문자만 포함하도록 허락된다.
URL에 이진데이터 또는 알파벳 외의 문자를 포함해야하는 경우도 있기 때문에 이스케이프라는 기능으로 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게 하였다. (가끔 URL을 보면 있던 %7%20... 요런 것들이 떠오를 것이다.)
URL에 허락되지 않은 문자 (US-ASCII가 지원하지 않는 문자)와 이진 데이터를 포함시켜야하는 경우 이스케이프 문자열을 사용하여 이들을 인코딩시킬 수 있도록 하여 이동성과 URL의 완성도를 높였다.
%
로 시작해 ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 이스케이프
문자로 바꾼다.왠지 URL에 한글이 들어간 경우를 본 적 있는 것 같지 않은가..? 나도다! 어떤 전송 프로토콜에서는 이것이 별 문제가 되지 않기도 하지만.... 사실 애플리케이션 개발자들이 안전하지 않은 문자를 인코딩하지 않는 것은 실수라고 한다!
아래 스킴이 무엇인지는... 궁금하다면 직접 알아보자! (http, https말고는 쓸 일이 없지 않을까)
책 http 완벽 가이드 2장