HTTP 완벽 가이드
2장. URL과 리소스
yarn.choong
표준화된 리소스들
• Phone number : 011-1111-1111
• Address : 서울시 관악구 서원동 xxxx번지
• Book : ISBN 81-7525-766-0
• Bank account : 110-2345-0933
•URL : ????
URL
• Uniform Resource Locatot
• Browser(chrome, IE, firefox..)가 정보를 찾는데 필요한 리소스
위치를 가르킴..
• HTTP 이외에 프로토콜을 통해서도 접근가능.
• URI(Uniform Resource Identifier) = URL
– HTTP 명세에서는 URI를 더 일반화된 개념의 리소스의 식별자로 이용한다.
URL
http://www.joes-hardware.com/seasonal/index-fall.html
path(what)host(where)Scheme(how)
URL 문법
<scheme>://<user-
name>:<passowrd>@<host>:<port>/<path>;<params >?<query>#<fragment>
• URL은 일반적으로 9개 부분으로 나누어진다.
• 하지만 이 모든 컴포넌트를 가지는 URL은 없다.
• 가장 중요한 부분은 scheme, host, path
Scheme(protocol)
• Scheme는 주어진 리소스에 어떻게 접근하는 알려주는 정보.
• 알파벳으로 시작
• URL의 나머지 부분들과 ‘:’ 문자로 구분한다.
• 대소문자 구분하지 않는다.
• http, mailto, ftp, rtsp 등..
Host, port
• Host는 접근 하려고 하는 리소스를 가지고 있는 인터넷상의 호스트 장비
• Host는 host명(www.example.com)이나 ip 주소로 제공한다.
• Port는 서버가 열어 놓은 network port
• http default port: 80
User name, password
ftp://ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymou@ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymou:mypasswd@ftp.prep.ai.mit.edu/pub/gnu
• User name, password를 넣지 않을 경우 기본 user name,
password가 들어간다(user name, password를 원하는 경우)
• FTP인 경우 기본 user name은 anonymous가 들어가고 비밀번호는
브라우저 마다 가지고 있는 기본값을 사용한다.
path
http://www.joes-hardware.com/seasonal/index-fall.html
• 리소스가 서버의 어디에 있는지 알려준다.
• 계층적 파일 시스템 경로와 유사한 구조.
• / 문자를 기준으로 나누어진다. (경로 조각?)
• 각 경로 조각은 자체 param을 가질 수 있다.
params
ftp://prep.ai.mit.edu/pub/gnu;type=d
• Host 및 path만으로는 리소스를 찾지 못 할 수 있다.
• Application에서 정확한 요청을 하기 위해 필요한 입력 param을
받는데 사용한다.
• 이름 / 값 처럼 쌍을 이룬다.
• ; 구분하여 URL에 기술한다.
query
http://www.joes-hardware.com/seasonal?item=1&color=red
• 요청 받을 리소스 형식의 범위를 좁히기 위해서 query param을 받을
수 있다.
• ? 시작, &로 구분한다.
• 이름=값 쌍으로 이루어진다.
fragment
http://www.joes-hardware.com/seasonal/index-
fall.html#drills
• Html 같은 리소스 형식들은 본래의 수준보다 더 작게 나뉠수 있다.
(아마도 html을 가져온 후 문단으로 나누어서 특정 문단(절)으로 이동가능
하다 것 인 듯)
• 용량이 큰 텍스트의 문서의 경우 URL은 문서 전체를 가르키지만, 이상
적으로 특전 문단(?)을 가르킬 수 있다.
• # 뒤에 fragment id가 들어온다.
상대 URL
http://www.joes-hardware.com/seasonal/index-fall.html
• URL은 상대 URL, 절대 URL로 나누어진다.
• 절대 URL은 모든정보를 가지고 있다.
• 상대 URL은 모든 정보를 가지고 있지 않다. 필요한 정보를 얻기 위해서
는 기저?(base)URL을 사용 해야한다.
상대URL절대URL
상대URL이 절대 URL 만들기
<html>
<body>
<a href=‘/hammer.html’>hammers</a>
중략..
기저URL : scheme(http), host(www.joes-hardware.com) 추측가능.
http://www.joes-hardware.com/tool.html
상대 URL :
/hammers.html
http://www.joes-hardware.com/hammers.html
새로운 절대URL
기저(base) URL
• 리소스에서 명시적으로 제공
– Html에서는 <base>라는 태그로 기술 가능.
<base href="http://www.w3schools.com/images/" target="_blank">
• 리소스를 포함하고 있는 기저 URL
– 리소스의 URL을 기저 URL로 사용가능.(이전 예제)
• 기저 URL이 없는 경우
– 불완전 하거나 깨진 URL일 수 도 있다.
• 상대 참조 해석하기
– rfc1808 , rfc 2396 참조... (잘 이해가 안되는 부분..)
URL 문자 집합
• 컴퓨터 시스템의 기본 문자 집합은 영어중심.
• US-ASCII 문자 집합을 사용.
• 유럽언어나 기타 다른 언어들은 US-ASCII는 지원하지 않는다.
• URL은 특정 이진 데이터를 포함 해야 하기 때문에 이스케이프 문자열
을 쓸 수 있게 설계.
• 이스케이프 문자열은 US-ASCII에서 금지된 문자들로 , 특정 문자나 데이
터를 인코딩 할 수 있게 함으로 써 이동성과 완성도를 높였다.
인코딩 체계
• 안전한 문자 집합의 한계를 넘어서기 위해서 인코딩 방식을 고안.
• 안전하지 않은 문자를 %로 시작해 ASCII 코드로 표현 되는 2개의 16진
수로 이루어진 이스케이프 문자로 바꾼다.
문자 AsCII 코드 URL의 예
~ 126(ox7E) http://www.exam.com/%7Ejoe
빈 문자 32(0x20) http://www.exam.com/m%20g
% 37(0x25) http://www.exam.com/100%25d
문자제한
• 몇몇 문자는 특별한 의미로 예약
• US_ASCII 출력 가능한 문자 집합에 포함되지 않은 문자.
• 인터넷 게이트와 프로토콜에서 혼동되는 문자.
• 예약된 문자를 사용 할려면 인코딩 하여 사용.
• %, /, ., .., #, ?, ; , : $,+ 등..
미래
• URL은 주소 이지 실제 이름이 아니다.
– URL이 특정 시점에 어떤 것이 위치한 곳을 알려준다.
• 리소스가 옮겨지면 URL은 더는 사용할 수 없다는 단점이 있다.
• 이러한 단점을 해결 하기 위해서는 객체의 위치와 상관없이 실제 객
체이름만으로 리소스를 찾는 것.
• IEFT는 URN(Uniform Resource Names)이라는 새로운 표준작업
에 착수.
– URN은 객체가 옮겨지더라도 항상 객체를 가리킬 수 있는 이름을 제공.
• 지속통합 자원 지시자로(PURL)을 사용하면 URL로 URN 기능을 제공.
PURL(Persistent uniform resource locators)
purl.oclc.org
www.joes-hardware.com
1. http://purl.olcl.org/ihardware
2. http://www.joes-hardware.com
1. 죠의 컴퓨터 가게 URL이 무엇인 리소스 리졸버에게 묻는다, 리졸버로부터 리소스의 현재
위치를 받는다.
2. 실제 URL로 리소스를 가젼온다

Http 완벽 가이드(2장 url과 리소스)

  • 1.
    HTTP 완벽 가이드 2장.URL과 리소스 yarn.choong
  • 2.
    표준화된 리소스들 • Phonenumber : 011-1111-1111 • Address : 서울시 관악구 서원동 xxxx번지 • Book : ISBN 81-7525-766-0 • Bank account : 110-2345-0933 •URL : ????
  • 3.
    URL • Uniform ResourceLocatot • Browser(chrome, IE, firefox..)가 정보를 찾는데 필요한 리소스 위치를 가르킴.. • HTTP 이외에 프로토콜을 통해서도 접근가능. • URI(Uniform Resource Identifier) = URL – HTTP 명세에서는 URI를 더 일반화된 개념의 리소스의 식별자로 이용한다.
  • 4.
  • 5.
    URL 문법 <scheme>://<user- name>:<passowrd>@<host>:<port>/<path>;<params >?<query>#<fragment> •URL은 일반적으로 9개 부분으로 나누어진다. • 하지만 이 모든 컴포넌트를 가지는 URL은 없다. • 가장 중요한 부분은 scheme, host, path
  • 6.
    Scheme(protocol) • Scheme는 주어진리소스에 어떻게 접근하는 알려주는 정보. • 알파벳으로 시작 • URL의 나머지 부분들과 ‘:’ 문자로 구분한다. • 대소문자 구분하지 않는다. • http, mailto, ftp, rtsp 등..
  • 7.
    Host, port • Host는접근 하려고 하는 리소스를 가지고 있는 인터넷상의 호스트 장비 • Host는 host명(www.example.com)이나 ip 주소로 제공한다. • Port는 서버가 열어 놓은 network port • http default port: 80
  • 8.
    User name, password ftp://ftp.prep.ai.mit.edu/pub/gnu ftp://anonymou@ftp.prep.ai.mit.edu/pub/gnu ftp://anonymou:mypasswd@ftp.prep.ai.mit.edu/pub/gnu •User name, password를 넣지 않을 경우 기본 user name, password가 들어간다(user name, password를 원하는 경우) • FTP인 경우 기본 user name은 anonymous가 들어가고 비밀번호는 브라우저 마다 가지고 있는 기본값을 사용한다.
  • 9.
    path http://www.joes-hardware.com/seasonal/index-fall.html • 리소스가 서버의어디에 있는지 알려준다. • 계층적 파일 시스템 경로와 유사한 구조. • / 문자를 기준으로 나누어진다. (경로 조각?) • 각 경로 조각은 자체 param을 가질 수 있다.
  • 10.
    params ftp://prep.ai.mit.edu/pub/gnu;type=d • Host 및path만으로는 리소스를 찾지 못 할 수 있다. • Application에서 정확한 요청을 하기 위해 필요한 입력 param을 받는데 사용한다. • 이름 / 값 처럼 쌍을 이룬다. • ; 구분하여 URL에 기술한다.
  • 11.
    query http://www.joes-hardware.com/seasonal?item=1&color=red • 요청 받을리소스 형식의 범위를 좁히기 위해서 query param을 받을 수 있다. • ? 시작, &로 구분한다. • 이름=값 쌍으로 이루어진다.
  • 12.
    fragment http://www.joes-hardware.com/seasonal/index- fall.html#drills • Html 같은리소스 형식들은 본래의 수준보다 더 작게 나뉠수 있다. (아마도 html을 가져온 후 문단으로 나누어서 특정 문단(절)으로 이동가능 하다 것 인 듯) • 용량이 큰 텍스트의 문서의 경우 URL은 문서 전체를 가르키지만, 이상 적으로 특전 문단(?)을 가르킬 수 있다. • # 뒤에 fragment id가 들어온다.
  • 13.
    상대 URL http://www.joes-hardware.com/seasonal/index-fall.html • URL은상대 URL, 절대 URL로 나누어진다. • 절대 URL은 모든정보를 가지고 있다. • 상대 URL은 모든 정보를 가지고 있지 않다. 필요한 정보를 얻기 위해서 는 기저?(base)URL을 사용 해야한다. 상대URL절대URL
  • 14.
    상대URL이 절대 URL만들기 <html> <body> <a href=‘/hammer.html’>hammers</a> 중략.. 기저URL : scheme(http), host(www.joes-hardware.com) 추측가능. http://www.joes-hardware.com/tool.html 상대 URL : /hammers.html http://www.joes-hardware.com/hammers.html 새로운 절대URL
  • 15.
    기저(base) URL • 리소스에서명시적으로 제공 – Html에서는 <base>라는 태그로 기술 가능. <base href="http://www.w3schools.com/images/" target="_blank"> • 리소스를 포함하고 있는 기저 URL – 리소스의 URL을 기저 URL로 사용가능.(이전 예제) • 기저 URL이 없는 경우 – 불완전 하거나 깨진 URL일 수 도 있다. • 상대 참조 해석하기 – rfc1808 , rfc 2396 참조... (잘 이해가 안되는 부분..)
  • 16.
    URL 문자 집합 •컴퓨터 시스템의 기본 문자 집합은 영어중심. • US-ASCII 문자 집합을 사용. • 유럽언어나 기타 다른 언어들은 US-ASCII는 지원하지 않는다. • URL은 특정 이진 데이터를 포함 해야 하기 때문에 이스케이프 문자열 을 쓸 수 있게 설계. • 이스케이프 문자열은 US-ASCII에서 금지된 문자들로 , 특정 문자나 데이 터를 인코딩 할 수 있게 함으로 써 이동성과 완성도를 높였다.
  • 17.
    인코딩 체계 • 안전한문자 집합의 한계를 넘어서기 위해서 인코딩 방식을 고안. • 안전하지 않은 문자를 %로 시작해 ASCII 코드로 표현 되는 2개의 16진 수로 이루어진 이스케이프 문자로 바꾼다. 문자 AsCII 코드 URL의 예 ~ 126(ox7E) http://www.exam.com/%7Ejoe 빈 문자 32(0x20) http://www.exam.com/m%20g % 37(0x25) http://www.exam.com/100%25d
  • 18.
    문자제한 • 몇몇 문자는특별한 의미로 예약 • US_ASCII 출력 가능한 문자 집합에 포함되지 않은 문자. • 인터넷 게이트와 프로토콜에서 혼동되는 문자. • 예약된 문자를 사용 할려면 인코딩 하여 사용. • %, /, ., .., #, ?, ; , : $,+ 등..
  • 19.
    미래 • URL은 주소이지 실제 이름이 아니다. – URL이 특정 시점에 어떤 것이 위치한 곳을 알려준다. • 리소스가 옮겨지면 URL은 더는 사용할 수 없다는 단점이 있다. • 이러한 단점을 해결 하기 위해서는 객체의 위치와 상관없이 실제 객 체이름만으로 리소스를 찾는 것. • IEFT는 URN(Uniform Resource Names)이라는 새로운 표준작업 에 착수. – URN은 객체가 옮겨지더라도 항상 객체를 가리킬 수 있는 이름을 제공. • 지속통합 자원 지시자로(PURL)을 사용하면 URL로 URN 기능을 제공.
  • 20.
    PURL(Persistent uniform resourcelocators) purl.oclc.org www.joes-hardware.com 1. http://purl.olcl.org/ihardware 2. http://www.joes-hardware.com 1. 죠의 컴퓨터 가게 URL이 무엇인 리소스 리졸버에게 묻는다, 리졸버로부터 리소스의 현재 위치를 받는다. 2. 실제 URL로 리소스를 가젼온다