- 스킴://사용자이름 : 비밀번호 @ 호스트 : 포트/경로 ; 파라미터 ? 질의 # 프래그먼트
- 각 프로토콜마다 사용하는 문법 구조가 조금씩 다름
http : 스킴://호스트:포트/경로
ftp : 스킴://사용자이름:비밀번호@호스트:포트/경로
- 클라이언트가 리소스에 접근하기 위해 사용해야하는 프로토콜, Http/ftp/rtsp등 사용
- 구분자 : :
- 호스트 : 인터넷 상에 리소스가 호스팅되어있는 네트워크 장비 주소
- 포트 : 요청을 처리할 수 있는 프로세스에 접근하는 포트
포트를 명시하지 않을경우 디폴트 포트인 80포트로 접속
- 리소스에 접근 권한을 얻기 위한 컴포넌트
- 주로 FTP 서버에서 사용
- 구분자 : :,@
ftp://wm10321:password@navercorp.com/index.html
- 서버 로컬에 리소스가 저장되어있는 디렉토리 경로
- 구분자 : /
- 서버에 원하는 리소스를 구체적으로 정확히 요청하기 위한 컴포넌트
- key=value 형태
- 구분자 : ;
- 리소스 경로 조각마다 사용 가능
http://navercorp.com:80/root/deploy/index.html;type=txt http://navercorp.com:80/root;name=irteam/deploy/index.html;type=txt
- 데이터베이스 게이트웨이에 요청을 할 경우 사용
- key=value 형태
- 구분자 : ?
http://navercorp.com:80/root/irteam/userAccount.db?id=wm10111
- 리소스의 일부분만을 요청하고자 할때, 요청부분을 명시하는 컴포넌트
- 구분자 : #
- Http 서버의 경우 프래그먼트 동작 x
서버는 리소스 전체를 응답해줌, 클라이언트에서 전달받은 리소스의 일부만을 출력
- 리소스 내부에 리소스를 기술할경우 리소스 url 을 간결하게 작성하는 방법
url : 절대 url(full url) / 상대 url(단축 url)
- 상대 url을 절대 url로 변환하여 리소스 접근
- 상대 url이 포함되어있는 리소스의 기저 url 참조
상대 url : /login.html
상위 url : http://navercorp.com/root/index.html
기저 url : http://navercorp.com/root
기저 + 상대 url : http://navercorp.com/root/login.html - 상대 -> 절대 url 변환 과정
- 기저 url 탐색
- url 분해
- 기저 + 상대 url 결합
- 브라우저에 사용자가 url 입력시 자동으로 full url을 완성해주는 기능
- 호스트명 확장 : 사용자가 입력한 단어를 포함하고있는 사이트를 검색하여 확장
- 히스토리 확장 : 사용자가 이전에 방문했던 사이트 url중에서 검색하여 확장
- US-ASCII 문자 집합 사용
- US-ASCII 에서 url로 사용이 금지된 문자들은 이스케이프 문자로 인코딩하여 사용
- 이스케이프 문자 : % + 16진수 아스키 코드