티스토리 뷰

Network

URL과 리소스

realizers 2023. 3. 18. 23:13
728x90
반응형

URL 문법


URL을 사용하여 인터넷 상의 모든 리소스를 찾을 수 있지만 리소스들은 scheme마다 접근 방법이 다릅니다.

URL의 문법

💡 scheme

 

  • scheme은 리소스를 가져오려면 어떤 프로토콜을 사용해서 서버에 접근해야 하는지 알려주는 중요한 정보입니다.
  • scheme은 알파벳으로 시작해야합니다.

💡 사용자 이름과 비밀번호

 

  • 몇몇의 scheme은 리소스에 접근하기 위해 사용자 이름을 필요로 합니다.

💡 호스트와 포트

 

  • 호스트는 접근하려고 하는 리소스를 가진 인터넷상의 호스트 장비를 말합니다.(도메인명이나 IP주소)
  • 포트는 서버가 열어놓은 네트워크 포트를 말합니다.

💡 경로

 

  • URL의 경로는 얻고자 하는 리소스가 서버의 어느 위치에 존재하는지 알려줍니다.
  • HTTP URL에서 경로는 '/' 문자를 기준으로 나뉩니다.

💡 파라미터(Matrix parameter)

 

  • URL의 파라미터는 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용합니다. 
  • 파라미터는 이름/값 쌍으로 구성되며 ';' 문자를 기준으로 구분하여 URL에 기술합니다.
  • 리소스에 접근하는데 필요한 어떤 추가 정보를 전달할 수 있습니다.

 

💡 질의(Query string)

 

💡 프래그먼트

 

  • 리소스의 특정 부분을 가리킬 수 있도록 지시할 수 있습니다. 
  • 일반적으로 HTTP 서버는 객체의 일부가 아닌 전체만을 다루기 때문에 클라이언트는 서버에 플래그먼트를 전달하지 않습니다. 브라우저가 서버로부터 응답값을 받아 프래그먼트를 사용하여 보고자하는 리소스의 특정 부분부터 보여줍니다.
  • 서버는 객체를 전체 단위로만 전송하기 때문에 URL 프래그먼트는 클라이언트에서만 사용됩니다.

 

단축 URL


💡 상대 URL

 

  • URL은 상대 URL과 절대 URL로 나뉩니다.
  • 절대 URL은 리소스에 접근하는데 필요한 모든 정보를 가지고 있습니다. 예를들어 naver.com/auth/login 으로 표현할 수 있습니다.
  • 상대 URL은 모든 정보를 담고 있지 않습니다. 상대 URL을 통해 특정 리소스에 접근하기 위해서는 기저(base)라고 하는 다른 URL을 사용해야 합니다.

💡 상대 경로 표기법

 

  • /   : root 경로를 의미합니다.
  • ./  : 현재 디렉토리를 의미합니다.
  • ../ : 부모 디렉토리를 의미합니다.
<!doctype html>
<html> 
    <head>
        <title>Example</title>
    </head>
    <body>
        <a href="./logout">logout</a> 
    </body>
</html>

 

안전하지 않은 문자


  • 안전한 전송이란 정보가 유실될 위험없이 URL을 전송할 수 있다는 것을 의미합니다.
  • URL 설계자들은 모든 인터넷 프로토콜로 URL이 전송되길 바랬고, 이와 같이 가독성도 있길 원했습니다. 하지만 URL 설계자들은 특정 사용자들이 안전한 알파벳 외의 문자도 포함하려고 할 때가 있다는 것을 알았고 그래서 이스케이프라는 기능을 추가하여, 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게끔 하였습니다.

 

💡 escape

 

  • 컴퓨터 시스템의 기본 문자 집합은 보통 영어 중심으로 설정되어 있습니다. 역사적으로 US-ASCII 문자 집합을 사용해왔습니다. US-ASCII는 문자를 서식화하고 하드웨어상에서 신호를 주고받기 위해 7비트를 사용하여 영문 자판에 있는 키 대부분과 몇몇 출력되지 않는 제어 문자를 표현합니다. 하지만 적은 수의 문자만을 포함하기 때문에 많은 언어들까지 US-ASCII가 지원하지 않습니다.
  • 또한 URL에 특정 이진 데이터를 포함해야하는 경우 이를 지원하기 위해 URL에 escape string을 사용할 수 있도록 하였습니다. 
  • escape string은 US-ASCII에서 사용이 금지된 문자들로, 특정 문자나 데이터를 인코딩할 수 있게끔하여 이동성과 완성도를 높였습니다.
  • 인코딩은 안전하지 않은 문자를 '%' 기호로 시작해 ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 escape string으로 바꿉니다.

 

 

 

 

 

 

 

 

728x90
반응형