본문 바로가기

교양/네트워크

HTTP 완벽가이드 - 2장 URL과 리소스

URL

URL의 구조

URL의 구조는 크게 세 가지로 나뉜다.

스킴

통신 프로토콜 부분(http)를 스킴이라고 부른다. 스킴은 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다.

 

서버의 위치

www.codns.com  부분이 서버의 위치다. 이는 웹 클라이언트의 리소스가 어디에 호스팅 되어 있는지 알려준다.

 

리소스 및 리소스 경로

/codns/codns.jsp 부분이 리소스의 경로이다. 경로는 서버에 존재하는 로컬 리소스 들 중에서 요청받은 리소스가 무엇인지 알려준다.

 

URL 문법

 

다시 URL 구조를 바탕으로 URL 문법에 대해 자세히 알아보자.

스킴

사용할 프로토콜을 의미한다. 기본값은 없다.

 

유저, 패스워드

몇몇 스킴들은 유저와 비밀번호를 요청하는 경우가 있다. (FTP 가 한 예이다.) 아이디와 비밀번호를 : 로 전체를 @로 구분한다.

 

호스트

리소스를 호스팅하는 서버의 도메인 네임이나 IP

 

포트

서버의 포트번호. 기본값은 스킴에 따라 다르다. HTTP는 80 HTTPS는 443이다.

 

경로

이전 컴포넌트와 / 로 구분한다. 서버 내의 리소스가 어디 있는지를 가르킨다.

 

파라미터

http : // www.hello.com/pub/index.jsp;type:d 

와 같은 형식이 있을 시에

; 다음 나오는 키와 값을 포멧으로 가진다.

몇몇 스킴에서 리소스에 접근하는데 있어서 추가적인 정보를 주어 디테일한 접근을 하는데 사용 된다.

쿼리

DB와 같은 서비스들의 리소스의 형식의 범위를 좁히기 위해서 사용된다.

 

프래그먼트

HTML와 같은 리소스들의 더 작은 단위의 리소스를 가르킨다. (웹페이지의 특정 위치)

프래그먼트는 서버에 전달되지 않고 브라우저에서만 작동한다. 프래그먼트를 사용하여 유저가 보고자 하는 리소스의 일부를 볼 수 있다. ( 프래그먼트 스크롤뷰와 같은 것을 사용할 수 있다. )

단축 URL

상대 URL

디렉토리를 접근하듯이 상대경로를 통해서 접근 할 수 있다.

상대 URL로 입력하게 되면 아래의 알고리즘에 따라 상대 URL을 절대 URL로 해석하여 결과를 가진다.

 

위의 예제인 ./hammers.html 을 알고리즘에 대입해보면

1. 스킴이 비었다. 

=> 기저 URL(http://www.joes-hardwore.com/tools)의 스킴을 상속 받는다.

2. 모든 컴포넌트(./hammers.html)가 비어 있지 않다.

=> 상속받은 컴포넌트(http://www.joes-hardwore.com:80)와 상대 컴포넌트(./hammers.html)를 새로운 절대 URL로 합친다.

 

URL 인코딩 및 문자 제한

URL에서 특정 문자들은 이미 기능들을 가진 문자들이 있기 때문에 이들을 순수한 문자열로 사용하기 위해서 다음과 같은 인코딩이 필요하다 

ASCII 코드를 따른다.