URL은 일련의 규칙에 따라 웹에 있는 자원의 주소를 표현하는 문자열이다.
부분별로 내부 구조를 살펴보면 URL이 표현하는 정보를 모두 파악할 수 있다.
Ref: https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_URL
통신 프로토콜을 정의하는 부분이다. 이 부분에 정의된 프로토콜에 따라 브라우저가 URL이 가리키는 리소스를 요청한다.
일반적인 웹 사이트의 경우 http://
혹은 https://
두 가지를 사용하지만,
ftp://
, file://
, mailto://
와 같은 다른 프로토콜 역시 브라우저에서 처리 가능하다.
도메인은 요청해야 할 웹 서버를 정의한다. 주로 도메인 네임을 통해 표현하지만 IP 주소를 사용해도 된다.
포트는 해당 웹 서버의 리소스에 접근할 때 사용할 포트 번호를 정의한다. 생략되는 경우 기본 포트를 의미한다.
ex) HTTP
→ 80, HTTPS
→ 443
오리진(Origin) = 스킴 + 도메인 + 포트
CORS에서의 Cross-Origin이 바로 이 세 가지 파트가 다른 서버와 클라이언트를 말한다.
URL이 가리키는 실제 자원이 위치한 경로를 표현하는 부분이다. 위의 예시와 같이 파일의 형태가 될 수도 있고, 추상화된 자원 경로가 될 수도 있다. 요새는 대부분의 경우 후자.
웹 서버에서 요청을 처리하는 데 사용하라고 넘겨주는 추가 정보를 key-value 쌍으로 정의하는 부분이다.
URL 파라미터의 시작은 ?
심볼을 통해 확인할 수 있고 여러 key-value 쌍을 &
심볼을 통해 이을 수 있다.
URL이 가리키는 리소스 내부의 특정 위치를 나타내는 부분이다. 일종의 리소스 내부 책갈피로 기능한다.
#
심볼을 통해 앵커 파트의 시작을 표현한다.
velog의 우측 내비게이션 바에서 제공하는 링크들이 마크다운 헤더를 기준으로 생성한 포스팅 내부의 앵커들이다.