URL

dragonappear·2023년 3월 9일
0

HTTP 완벽 가이드

목록 보기
1/3


URL이란?

  • URL(Uniform Resource Locator)는 인터넷의 리소스를 가리키는 표준이름이다.
  • URL은 리소스가 어디에 있고, 어떻게 접근할 수 있는지 알려준다.

URL과 URN의 차이
둘 다 리소스를 식별하는 것이 목적이다.

  • URL은 리소스의 위치로 리소스를 식별한다.
  • URN은 리소스의 위치와 상관없이 리소스의 이름만으로 리소스를 식별한다.
    리소스의 위치는 변할 수 있지만, 이름은 변하지 않으므로 위치로 리소스를 식별하는 것은 단점이 있다.

URL을 사용하는 이유

  • URL 방식으로 통일되기 전에는 리소스에 접근하는 방식이 가지각색이었다.

    • 예를 들어, complte-catalog.xls 이라는 파일을 공유하려고 할 때, FTP 프로토콜로 ftp.example.com 에 접속하여, 익명 사용자로 로그인 한 후 pub 디렉토리로 이동 후 complte-catalog.xls을 내려받으라고 할수도 있다.
    • 문제는 위 방식은 일관적이지 않으며, 각각의 애플리케이션마다 리소스 식별 방식이 다를수 있기 때문에 클라이언트 입장에서는 혼란스럽다.
  • URL 방식을 사용하면 일관된 방식으로 리소스에 접근할 수 있다.
    - 애플리케이션은 URL을 확인하여 리소스에 접근할 수 있다.

URL 문법

URL 문법은 스킴(프로토콜)에 따라 달라진다.

대부분의 URL 스킴의 문법은 일반적으로 9개 부분으로 나뉜다.

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

URL의 가장 중요한 세가지 컴포넌트는 스킴, 호스트, 경로다.

Scheme

[https]://www.google.com:443/search?q=hello&hl=ko

  • 주로 프로토콜을 사용한다
  • 스킴은 주어진 리소스에 어떻게 접근하는지 알려주는 중요한 정보이다.

userInfo

  • URL에 사용자 정보를 포함해서 인증할 때 사용한다.
  • 거의 사용하지 않음

Host,Port

https://[www.google.com]:443/search?q=hello&hl=ko

  • 호스트 컴포넌트는 리소스를 호스팅하고 있는 인터넷의 호스트를 가리킨다.
    • 도메인명 혹은 IP 주소로 가리킬 수 있다.
  • 포트 컴포넌트는 서버가 열어놓은 네트워크 포트를 가리킨다.

Path

https://www.google.com:443[/search]?q=hello&hl=ko

  • 리소스가 호스트의 어디(경로)에 있는지 나타낸다.
  • 계층적 구조를 가진다.

Query

https://www.google.com:443/search[?q=hello&hl=ko]

  • key=value 형태
  • ?로 시작, &로 추가 가능

안전하지 않은 문자

  • URL을 구성하는 문자 집합은 US-ASCII 방식으로 상대적으로 작고, 일반적으로 안전한 알파벳 문자만 포함해왔다.
    • 아스키 방식은 7비트로만 문자를 표현할 수 있기 때문에, 8비트 이상부터는 데이터 소실될 수 있다.
  • 이처럼 아스키 문자 집합로 표현할 수 있는 문자의 수가 제한적이기 때문에, URL에 이스케이프 문자열을 사용하여 특정 문자나 데이터를 인코딩할 수 있게 함으로써 표현할 수 있는 문자의 수를 늘렸다.

0개의 댓글