본 내용은 책 'HTTP 완벽 가이드'를 참고해 작성했습니다.

2-1. URL 이란?

Uniform Resource Locator의 약자. 인터넷 리소스를 가리키는 표준이름. 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리킴

 

2-2. URL의 문법

동일한 문법으로 모든 사람이 동일한 규칙으로 리소스를 찾을 수 있음

<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프래그먼트>

주로 사용되는 URL 구조
<스킴>//<호스트>:<포트>/<경로>

 

 

예시

HTTP의 URL <http://www.joes-hardware.com/seasonal/index-fall.html> 

- 그 외 프로토콜의 URL 
FTP => , FTP 서버에 올라간 파일 가리킴 
rtsp => rtsp://www.joes-hardware.com:554/interview/cto_video, 스트리밍을 제공하기 위해 비디오 서버에 호스팅하고 있는 영화를 가리킴
  • 스킴
    • 웹 클라이언트가 리소스에 어떻게 접근하는지 알려줌
  • 사용자 이름과 비밀번호 : FTP URL 스킴을 사용하면 사용자 이름과 비밀번호를 입력,
    • 사용자 이름 : 기본값 anonymous
    • 비밀번호 : 브라우저마다 기본값 다름(크롬, chrome@example.com)
  • 호스트 : 서버의 위치 www.naver.com www.boosters.kr
  • 경로 : 서버에서의 리소스 경로 /brand.php
  • 파라미터
    • 서버에 정확한 요청을 하기 위해 필요한 값
    • 필요한 파라미터가 없으면 서버가 해당 요청을 잘못 처리하거나 처리하지 않을 수 있음
    • 형식
      • ; 로 구분 ;sale=false
      • 이름/값 의 형태
    <http://www.joes-hardware.com/hamers;sale=false/index.html;graphics=true>
    
    hammers 경로 조각 -> 파라미터 sales의 값 false 
    index.html 경로 조각 -> 파라미터 graphics 값 true
    
  • 질의 문자열
    • 요청받을 리소스 형식의 범위를 좁히는 용도
    • 형식
      • & 구분 ?item=123
      • 이름=값 의 형태
    <http://www.joes-hardware.com/inventory-check.cgi?item=12731>
    
    -> 판매되지 않은 상품의 재고리스트에서 아이템 번호 12731의 재고가 있는지 조회하는 url
    
  • 프래그먼트
    • 형식 : #~
    • DOM의 id가 됨

 

2-3. 단축 URL

  • 절대 URL
  • 상대 URL
    • URL을 짧게 표기하는 방식
    <a href="./hammer.html">
    
    html 작성자는 url에 스킴, 호스트, 다른 컴포넌트를 입력하지 않아도 됨
    기저 url을 통해 기술하지 않은 정보를 추측할 수 있기 때문. 
    여기서 기저 url은 <http://www.joes-hardware.com/tools.html>
    • 장점
      • HTML 페이지 같은 리소스 집합을 쉽게 변경할 수 있음
      • 리소스의 위치를 변경하더라도 잘 동작함

 

  • URL 확장
    • 브라우저 사용자에게 편의성 제공하는 용도
    • 브라우저 특징
    • 호스트명 확장
      • 해당 기능을 지원하는 브라우저는 단순한 단어를 입력해 url을 제공
      yahoo -> www.yahoo.com
      
    • 히스토리 확장

 

2-4. 안전하지 않은 문자

다양한 인터넷 프로토콜과 장치에도 데이터를 안전하게 송수신 하기 위한 URL 설계와 좋은 가독성이 필요했다. 그를 위해 사용하는 것이 인코딩.

 

  • URL 문자 집합
    • 주로 영어와 US-ASCII 기반

 

- 비영어 언어와 특정 이진데이터의 경우 

    - URL 이스케이프 문자열을 사용해 지원 

    - 안전하지 않은 문자를 % 기호로 시작해서 ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 '이스케이프' 문자로 바꿈

~ 126(0x7E) %7E
빈 문자 32(0x20) %20
% 37(0x25) %25

 

 

 

- URl에 사용 시 반드시 인코딩해야 하는 문자

US-ASCII 문자 집합에 포함되지 않거나 인터넷 게이트웨이와 프로토콜에서 사용돼 혼란을 줄 것이라 예상되는 문자들

 

마무리

하지만 URL의 치명적 단점은 리소스 자체가 아닌 리소스의 위치를 의미하기 때문에 리소스 위치가 변경되면 더이상 찾지 못하는 것이다. 그렇기에 위치에 상관없이 리소스를 찾을 수 있는 URN 아이디어가 나왔지만, 아직 실현되기까지는 갈 길이 멀다.

 

'네트워크 > HTTP' 카테고리의 다른 글

[HTTP] 4장 : 커넥션 관리  (2) 2023.12.04
[HTTP] 3장 : HTTP 메시지  (0) 2023.12.04
[HTTP] 1장 : HTTP 개관  (0) 2023.12.04

+ Recent posts