SlideShare a Scribd company logo
1 of 29
Chapter2
URL과 리소스
이준환
 URI(Uniform Resource Identifiers)
 URL – 위치(Location)로 리소스르 식별
 URN – 이름(Name)만으로 리소스를 식별
 고유한이름: 주민번호, ISBN, Hash value!
 Resource
 텍스트, 이미지, 동영상등의 자원
URL, Resource
http://www.joes-hardware.com/seasonal/index-fall.html
Scheme(프로토콜) + Host(서버의 위치) + Path(리소스의 경로)
2.1 인터넷의 리소스 탐색하기
2.1 인터넷의 리소스 탐색하기
mailto:president@whitehouse.gov
ftp://ftp.lots-o-books.com/pub/complete-price-list.xls
rtsp://www.joes-hardware.com:554/interview/cto_video
magnet:?xt=urn:btih:33B7D3E151FF6777423BBB15183D0
4D9F185121&dn=%5bJTBC%5d%20program%20name%
20HDTV.H264.720p.mp4
URL이 없던 시절엔 복잡한 설명을 해야했다.
2.2 URL 문법
<Scheme>://<사용자이름>:<비밀번호>@<호스트>:<포
트>/<경로>; <파라미터>? <질의>#<프레그먼트>
2.2.1 Scheme: 사용할 프로토콜
http://www.joes-hardware.com
알파벳으로 시작해야 함
대소문자 구분 안함
2.2.2 호스트와 포트
http://www.joes-hardware.com:80/index.html
http://161.58.228.45:80/index.html
2.2.3 사용자 이름과 비밀번호
ftp://ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous@ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu
2.2.4 경로
http://www.joes-hardware.com/seasonal/index-fall.html
2.2.5 파라미터
ftp://prep.ai.mit.edu/pub/gnu;type=d
http://www.joeshardware.com/hammers;sale=false/index.h
tml;graphics=true
2.2.5 질의 문자열
http://www.joes-
hardware.com/inventorycheck.cgi?item=12731
http://www.joes-
hardware.com/inventorycheck.cgi?item=12731&color=blue
2.2.5 프래그먼트
http://www.joes-hardware.com/tools.html#drills
Magnet example
magnet:?xt=urn:btih:33B7D3E151FF6777423C82215183D0
4D9F185121&dn=%5bJTBC%5d%20program%20name%20
HDTV.H264.720p.mp4
magnet:? xl = [Size in Bytes] & dn = [file name (URL
encoded)] & xt = urn: btih:[ BitTorrent Info Hash (Hex) ]
 xt(Exact Topic)
 dn(Display Name)
 xl(Exact Length)
2.3 URL Shortcuts
 상대URL
 절대URL
2.3 URL Shortcuts
view-source:http://www.joes-hardware.com/tools.html
<html>
<body>
<A href=“./hammers.html”>hammers</A>
</body>
</html>
2.3 URL Shortcuts
1. html파일을 보면 ./hammers.html은 상대URL이다
2. 상대URL에는 스킴이 없다.(있다면 그건 절대URL)
3. Base url(상대URL을 사용한 tools.html의 URL에서)을
얻는다.
4. 최소 host+port는 있으니 상속받는다.
5. 상대URL(./hmmers.html)과 scheme, host, port를 합
치면 절대 URL이 나온다.
2.3 URL Shortcuts
해석한 절대URL
http://www.joes-hardware.com/hammers.html
2.3 URL 확장
 호스트명 확장
 자동완성
 히스토리 확장
 히스토리, 캐시
2.4 안전하지 않은 문자
 이기종간에 URL로 모든 리소스가 잘 전달되
길 원함
 안전한 전송은 정보유실 없는 URL전송
 전송의 유효성+가독성을 원함
 아스키문자외에 문자도 사용가능해야 함
 이스케이프 기능 추가
2.4.1 URL 문자 집합
 이스케이프 문자열은 US-ASCII에서 사용이 금
지된 문자들
 특정 문자/데이터를 인코딩해서 이동성+완성
도를 높임
2.4.2 인코딩 체계
 Percet incoding이라고도 함
 Percent(%)로 시작해서 ASCII로 표현되는 16
진수의 ‘이스케이프’ 문자로 바꿈
2.4.3 문자 제한
 % / . .. # ? ; : $ + @ 등의 예약어가 있다.
 예약어를 사용하려면 인코딩 해서 사용해야
한다.
 ex; %=%25
2.4.4 좀 더 알아보기
 ~ 인코딩하지 않음
 브라우저가 인코딩하기 가장 좋은 위치(layer)
 극단적으로 모든 문자열을 인코딩할 수 있지
만 규약되어 있지 않아서 오동작을 일으킬 수
있음
 악의적인 문자열은 패턴매칭으로 필터링
2.5 Scheme의 바다
 Scheme(e.g. http, https, mailto, ftp)별로 기본
형식이 있으나 URL문법에서 크게 벗어나지
않음.
 텔넷
telnet://<user>:<password>@<host>:<port>/
2.6 미래
 URL은 강력한 tool이지만 완벽하지는 않다.
 URL은 항상 유효하지 않아서 서비스 제공이
불가할 수 있다.
 URN으로 해결할 수 있다.
 Object의 real name을 사용해서 리소스가 이
동해도 잘 찾아가도록
 PURL(Persistent URL)은 resolver를 통해서 실
제 resource의 위치를 찾아감.
2.6 미래
 PURL도 결국은 DNS처럼 서버와 클라이언트
사이에 resolver 서버를 두어 우회적으로 서비
스함.
2.6.1 지금이 아니면, 언제?
 URN을 미디어 콘텐츠류에 적용하려고 시도
한적이 있었음
 MPEG21 리소스를 표준화하려고 정통부(2003)
에서 시도했지만 2003년 이후 아무 정보가 없
음
Magnet example
magnet:?xt=urn:btih:33B7D3E151FF6777423C82215183
D04D9F185121&dn=%5bJTBC%5d%20program%20name
%20HDTV.H264.720p.mp4
magnet:? xl = [Size in Bytes] & dn = [file name (URL
encoded)] & xt = urn: btih:[ BitTorrent Info Hash (Hex) ]
 xt(Exact Topic)
 dn(Display Name)
 xl(Exact Length)
Magnet example
magnet:?xt=urn:btih:05A3AAABBBFC5A78777AA961D64
4BBDB60886FFA

More Related Content

Similar to http 완벽가이드 Chap2

Linked Open Data Tutorial
Linked Open Data TutorialLinked Open Data Tutorial
Linked Open Data TutorialMyungjin Lee
 
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST APIWooyoung Ko
 
REST Ovewview
REST OvewviewREST Ovewview
REST OvewviewTerry Cho
 
Web App Security 2015.10
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10Chanjin Park
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. restTerry Cho
 
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개철민 권
 
Restful web service
Restful web serviceRestful web service
Restful web servicesunguen lee
 

Similar to http 완벽가이드 Chap2 (9)

Linked Open Data Tutorial
Linked Open Data TutorialLinked Open Data Tutorial
Linked Open Data Tutorial
 
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
 
REST Ovewview
REST OvewviewREST Ovewview
REST Ovewview
 
Restful API guide
Restful API guideRestful API guide
Restful API guide
 
Web App Security 2015.10
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest
 
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
RDF와 Graph의 이해 및 오라클 Spartial&Graph 소개
 
Restful web service
Restful web serviceRestful web service
Restful web service
 

Recently uploaded

데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 

Recently uploaded (8)

데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 

http 완벽가이드 Chap2

Editor's Notes

  1. Hash value 고정된 길이의 메시지 축약 정보
  2. URL의 예 암흑시절에 Ftp도 ftp application으로 접속해서 host 알려주고 path 알려주고 접속해서 ?.xls를 찾아라.
  3. 생략방식 Id만 이땐 브라우저별 기본pw Id:pw 예약어는 콜론과 @
  4. 세미콜론으로 paramater를 넘김
  5. 브라우저가 # 해석해서 서버에 보내지않음
  6. Good sample URN + url syntax
  7. 상대URL와 절대 URL로 리소스를 기술=description함 걍 상대경로 절대경로임 *닉스에서
  8. Tools.html의 상대URL내용을 절대URL로 만들기! 현재디렉토리의 hammers.html로 연결하라
  9. Tools.html의 상대URL내용을 절대URL로 만들기! 4. (질의 같은 컴포넌트를 제외한)
  10. 포트생략
  11. 브라우저 애플리케이션에서 지원하는 기능 주소입력창에서 호스트명 확장은 자동완성 기능(휴리스틱)이고 히스토리확장은 실제 히스토리/캐시 내역에서 브라우저는 자동완성 시킴
  12. 이스케이프 문자열은 ‘가’를 uXXXXX로 변환한 ‘문자열’을 뜻함
  13. 텔넷은 브라우저가 지원안하니까ㄱ 브라우저로 시작하는게 아니라 프로토콜별 애플리케이션이 존재함 브라우저가 꽤 막강하고 URL을 사용하므로 생각하지만 브라우저는 지원안하는 프로토콜은 the other 앱에 연결시켜줄 수 있고 플러그인/확장 프로그램등으로 사용할 수 있고 Custom protocol방식의 URL scheme을 지원해서 따로 원하는 scheme을 추가해서 추가한 URL이 들어오면 외부 app에 연결해줄 수 있음
  14. 실제로 xt=urn:btih:???까지만 넣어줘도 잘됨
  15. 극한의 확률적 collision을 제외한 hash value는 고유하고 변하지 않기때문에 URN의 매우 적절한 형태로 절대적 resource 위치를 표시해줄 수 있음! 실제로 xt=urn:btih:???까지만 넣어줘도 잘됨 토렌트 애플리케이션이 프로토콜을 해석하고 토랭 프로토콜이 트래커에게 피어리스트 요청(HTTP로)해서 피어 리스트 받아오고 피어에게 세션열어서(BitTorrent protocol) 파일 받아옴 DHT 이용해서 peer를 찾아서 파일조각을 배분받음