8. 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
18. 2.3 URL 확장
호스트명 확장
자동완성
히스토리 확장
히스토리, 캐시
19. 2.4 안전하지 않은 문자
이기종간에 URL로 모든 리소스가 잘 전달되
길 원함
안전한 전송은 정보유실 없는 URL전송
전송의 유효성+가독성을 원함
아스키문자외에 문자도 사용가능해야 함
이스케이프 기능 추가
20. 2.4.1 URL 문자 집합
이스케이프 문자열은 US-ASCII에서 사용이 금
지된 문자들
특정 문자/데이터를 인코딩해서 이동성+완성
도를 높임
21. 2.4.2 인코딩 체계
Percet incoding이라고도 함
Percent(%)로 시작해서 ASCII로 표현되는 16
진수의 ‘이스케이프’ 문자로 바꿈
22. 2.4.3 문자 제한
% / . .. # ? ; : $ + @ 등의 예약어가 있다.
예약어를 사용하려면 인코딩 해서 사용해야
한다.
ex; %=%25
23. 2.4.4 좀 더 알아보기
~ 인코딩하지 않음
브라우저가 인코딩하기 가장 좋은 위치(layer)
극단적으로 모든 문자열을 인코딩할 수 있지
만 규약되어 있지 않아서 오동작을 일으킬 수
있음
악의적인 문자열은 패턴매칭으로 필터링
24. 2.5 Scheme의 바다
Scheme(e.g. http, https, mailto, ftp)별로 기본
형식이 있으나 URL문법에서 크게 벗어나지
않음.
텔넷
telnet://<user>:<password>@<host>:<port>/
25. 2.6 미래
URL은 강력한 tool이지만 완벽하지는 않다.
URL은 항상 유효하지 않아서 서비스 제공이
불가할 수 있다.
URN으로 해결할 수 있다.
Object의 real name을 사용해서 리소스가 이
동해도 잘 찾아가도록
PURL(Persistent URL)은 resolver를 통해서 실
제 resource의 위치를 찾아감.
26. 2.6 미래
PURL도 결국은 DNS처럼 서버와 클라이언트
사이에 resolver 서버를 두어 우회적으로 서비
스함.
27. 2.6.1 지금이 아니면, 언제?
URN을 미디어 콘텐츠류에 적용하려고 시도
한적이 있었음
MPEG21 리소스를 표준화하려고 정통부(2003)
에서 시도했지만 2003년 이후 아무 정보가 없
음
Tools.html의 상대URL내용을 절대URL로 만들기!
4. (질의 같은 컴포넌트를 제외한)
포트생략
브라우저 애플리케이션에서 지원하는 기능
주소입력창에서 호스트명 확장은 자동완성 기능(휴리스틱)이고 히스토리확장은 실제 히스토리/캐시 내역에서 브라우저는 자동완성 시킴
이스케이프 문자열은 ‘가’를 uXXXXX로 변환한 ‘문자열’을 뜻함
텔넷은 브라우저가 지원안하니까ㄱ
브라우저로 시작하는게 아니라
프로토콜별 애플리케이션이 존재함
브라우저가 꽤 막강하고 URL을 사용하므로 생각하지만 브라우저는 지원안하는 프로토콜은 the other 앱에 연결시켜줄 수 있고 플러그인/확장 프로그램등으로 사용할 수 있고
Custom protocol방식의 URL scheme을 지원해서 따로 원하는 scheme을 추가해서 추가한 URL이 들어오면 외부 app에 연결해줄 수 있음
실제로 xt=urn:btih:???까지만 넣어줘도 잘됨
극한의 확률적 collision을 제외한 hash value는 고유하고 변하지 않기때문에 URN의 매우 적절한 형태로 절대적 resource 위치를 표시해줄 수 있음!
실제로 xt=urn:btih:???까지만 넣어줘도 잘됨
토렌트 애플리케이션이 프로토콜을 해석하고 토랭 프로토콜이 트래커에게 피어리스트 요청(HTTP로)해서 피어 리스트 받아오고 피어에게 세션열어서(BitTorrent protocol) 파일 받아옴
DHT 이용해서 peer를 찾아서 파일조각을 배분받음