인터넷 탐색하기
URL 문법
https://user:[email protected]:8080/postview/blog/00014;param?test#fragment
컴포넌트 | 설명 | 기본값 | |
---|---|---|---|
https:// | 스킴 | 서버에 접속하기 위한 프로토콜 | |
user | 사용자 이름 | 서버에 로그인하기 위한 사용자 이름 | anonymous |
:password | 비밀번호 | 서버에 로그인하기 위한 비밀번호 | |
dev-lr.com | 호스트 | 리소스를 호스팅하는 서버의 도메인 혹은 IP | |
:8080 | 포트 | 서버가 동작중인 포트번호 | 스킴에 따라 결정 |
/postview/blog/00014 | 경로 | 목적지 내의 어떤 파일 | |
;param | 파라미터 | 특정 스킴에 대해 입력하는 파라미터. 세미콜론으로 다른 파라미터 혹은 경로와 구분함 | |
?test | 질의 (Query) | 스킴에서 애플리케이션으로 전달하는 파라미터. ?로 구분함 | |
#fragment | 프래그먼트 | 리소스의 특정 일부분을 가리키는 이름. #로 구분함 |
스킴
호스트, 포트
사용자 이름, 비밀번호
경로
파라미터
질의
프래그먼트
단축 URL
절대URL : <http://www.joes-hardware.com/tools.html>
상대URL : ./hammers.html
기저URL : <http://www.joes-hardwwre.com>
URL 확장 : 자동완성
안전하지 않은 문자
URL 문자 집합 : ASCII 문자 집합과 더불어 이스케이프 문자열을 사용함
인코딩 체계
문자 | ASCII |
---|---|
- | 126 (0x7E) |
공백 | 32 (0x20) |
% | 38 (0x25) |
문자 제한 : 아래 문자들은 URL에서 사용이 불가하다
문자 | 제한 |
---|---|
% | 이스케이프 문자열의 토큰 |
/ | 경로 컴포넌트에서 경로 구분자 |
. | 경로 컴포넌트에서 현재 디렉터리를 가리킬 때 사용 |
.. | 경로 컴포넌트에서 상위 디렉터리를 가리킬 때 사용 |
# | 프래그먼트의 구획 문자 |
? | 질의 문자열의 구획 문자 |
; | 파라미터의 구획 문자 |
: | 스킴, 사용자 이름/비밀번호, 호스트/포트의 구획 문자 |
$ , + | 예약어 |
@ & = | 특정 스킴에서의 의미를 가짐 |
{ } | \ ~ [ ] ` |
< > “ | URL 범위의 밖에서 역할이 있는 문자 |
0x00 ~ 0x1F, 0x7F | ASCII로 변환이 불가한 16진수 문자 |
> 0x7F | 7비트 ASCII 문자에 속하지 않음 |
| 스킴 | 설명 |
| --- | --- |
| http | 일반적인 URL 포맷을 사용하는 하이퍼 텍스트 전송 프로토콜 |
| https | http에 SSL 암호화가 적용된 프로토콜 |
| mailto | 특정 이메일 주소를 가리킴 |
| ftp | 파일 전송 프로토콜 |
| rtsp, rtspu | 실시간 미디어 리소스 스트리밍 프로토콜
rtspu는 UDP를 이용함 |
| file | 특정 호스트 기기에서 바로 접근할 수 있는 파일을 가리킴 |
| news | 뉴스 리소스 프로토콜 |
| telnet | Telnet 프로토콜 |