URL
in Programming on Web
URL
URL은 다음과 같이 구성되어 있다.
URL 스킴 : URL에 사용된 프로토콜
호스트명 : 웹 서버의 호스트명. 도메인이름 혹은 IP주소로 표현됨
포트번호 : 웹 서버 내의 서비스 포트번호
경로 : 파일이나 애플리케이션 경로
쿼리 스트링 : 질의 문자열. &로 구분된 이름 = 값, 이름 = 값.. 형식
프라그먼트 : 문서 내의 조각을 지칭함
URL을 바라보는 관점에 따라 두가지 방식으로 나눌 수 있다.
RPC (Remote Produce Call) 방식 : 클라이언트가 네트워크상의 원격서버가 제공하는 API함수를 호출하는 방식. 여기선 URL경로를 API함수와 같다고 본다. 조금 어려우면 흔히 GET방식에서 사용하는 쿼리문을 생각하면 된다. 웹 개발 초기에 많이 사용된 방식이다.
ex) http://blog.codelog.com/search?q=test&debug=true
REST (Representational State Transfer) 방식 : 웹 서버에 존재하는 요소들을 리소스라고 정의하고 URL을 통해 리소스를 표현한다는 개념. 데이터의 교환을 리소스 상태의 교환으로 보며, 리소스 조작을 GET, POST, PUT, DELETE 등의 HTTP 메소드로 구분한다.
REST방식에 의하면 웹 클라이언트에서 URL을 전송하는 것은 웹 서버에 있는 리소스 상태에 대한 데이터를 주고받는 것이다.
ex) http://blog.codelog.com/search/test
최근에는 간편URL방식을 많이 사용하고 있는데, 기존의 긴 URL에서 특수문자 등을 제거해 짧고 보기쉽게 만든 URL이다. 즉 쿼리 스트링 없이 경로만 가진 구조의 URL을 간편URL이라 한다.
기존 URL | 간편 URL |
---|---|
http://example.com/index.php?page=foo | http://example.com/foo |
http://example.com/product?category=2&pid=25 | http://example.com/product/2/25 |
http://example.com/cgi-bin/feed.cgi?feed=news&frm=rss | http://example.cim/news.rss |
http://example.com/app/dashboard/dsptchr_c80.dll?page=3861&mod1=bnr_ant&UID=4511681&SESSID=4fd8b561ac… | http://example.com/app/dashboard/reports#monthly |
파이썬 프레임워크 (Django, Flask 등)에서는 처음부터 간편 URL 체계를 도입하여 사용하고 있다.