URL(Uniform Resource Locator)
✒️ 2025-06-23 11:57 내용 수정
참고 자료 : mdn web docs URL이란, 위키백과 URL, Uniform Resource Identifier (URI) : Generic Syntax
네트워크 상에서 자원의 위치를 알려주는 규약
- 간략하게 컴퓨터 네트워크상의 자원을 알려주는 주소이다.
- URL은 스키마(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 매개변수(Parameter), 앵커(Anchor)로 이루어져 있다.
- mdn web docs에서 URL의 비유 설명이 이해하기 쉬워 메모해두었다.
| URL 구성요소 | 일반우편 비유 | 예 |
|---|---|---|
| 스키마(Scheme) | 사용하려는 우편 서비스 | HTTP, FTP 등 |
| 권한 : 도메인(Domain) | 시 또는 마을 | 네이버, 구글 등 |
| 권한 : 포트(Port) | 우편 번호 | 8080 등 |
| 경로(Path) | 건물 이름 | 네이버 블로그, 구글 docs 등 |
| 매개변수(Parameter) | 아파트 번호 등의 추가 정보 | 블로그의 10번째 글 등 |
| 앵커(Anchor) | 보낸 사람 | 문서의 헤더 |
- 자료 사진은 mdn web docs What is a URL 를 참고하여 작성했다.

스키마(Scheme)
- 브라우저가 리소스를 요청하는데 사용해야 하는 프로토콜 이다.
- 프로토콜 참고.
- 일반적인 웹 사이트의 경우 HTTP와 HTTPS를 사용하며, 메일 클라이언트를 위한 다른 프로토콜을 사용하는 경우도 있다.
권한(Authority)
- 스키마 뒤에 있는 부분이며, 스키마와는
://로 구분된다. - 권한에는 도메인(Domain)과 포트(Port)가 포함된다.
도메인(Domain)
- 요청하는 웹 서버를 나타내며, 도메인 이름을 주로 사용하고 ip 주소도 가끔 사용한다.
- DNS 참고.
- 도메인은 Root 도메인, 1st 도메인, 2nd 도메인(1st 도메인이 7대 도메인이면 생략), 3rd 도메인, 저장소로 구성되어 있으며, 컴퓨터가 해석하는 순서는 오른쪽에서 왼쪽으로 해석한다.
- DNS#도메인 구조에 첨부된 도메인 구조 사진
포트(Port)
- 웹 서버의 리소스에 접근하는데 사용되는 기술적인 게이트이다.
- 프로토콜별로 포트가 다르며, HTTP는 웹서버 프로토콜로 포트 번호 80번, HTTPS는 HTTP의 보안이 추가된 웹서버 프로토콜로 포트 번호 443번이다.
- 웹 서버뿐만 아니라 다른 컴퓨터 네트워크 간의 상호작용에도 포트를 사용한다.
- 특정 프로그램의 서비스를 이용하기 위해 주소와 포트까지 작성해서 접속하거나, 서버를 만들 때 특정 포트를 개방해 외부에서 접속할 수 있도록 설정할 수 있었다.
- Oracle 외부에서 연결하기 참고.
리소스 경로(Path)
참고 자료 : datatracker URL path component, Uniform Resource Identifier (URI): Generic Syntax Path, Medium Fullsour's When Should You Use Path Variable and Query Parameter
- 웹 서버에 있는 리소스의 경로이며, 실제 파일의 위치거나 물리적 실체가 없는 경로이다.
- 포트 다음에
/로 시작해서?로 끝나거나#으로 끝나는 부분이며, 경로의 연속적인 부분(segment)들은/로 구분된다.- 권한 부분이 있다면 시작 기호가 없거나
/로 시작해야 하며, 권한 부분이 없다면 경로는//로 시작할 수 없다.
- 권한 부분이 있다면 시작 기호가 없거나
- 계층 구조로 이루어져 있고, 비계층 구조의 query component 내의 데이터와 함께 리소스를 식별하는 역할을 한다.
- 리소스 경로와 Query component 모두 특정 프로토콜의 권한 스코프 내에서 리소스를 구분하는 역할을 하지만, 경로 변수(Path Variable)은 리소스를 식별할 때 더 많이 사용하고, Query Parameter는 데이터를 정렬하거나 필터링할 때 더 많이 사용한다.
- 지금까지 조사한 자료들을 총 정리했을 때
request.param이나(parameter라고 작성했지만)/path/:id와 같이 작성한 것은 경로 설정을,request.query나/path?key=value로 작성한 것은 query component라는 결론을 내렸다.
매개변수(Parameter)/Query Component
참고 자료 : wikipedia Query String, stackoverflow What is the difference between URL parameters and query strings?, Geeksforgeeks Query String and Query Parameter in Spring MVC, stackoverflow Why do some query strings work evne if parameters are not URL-encoded?, StackExchange Different operators in query string like ?var!=value
- 웹 서버에 제공되는 추가 매개변수로, 특정 매개변수에 값을 부여한다.
- 리소스 경로 뒤에
?로 시작해서#로 끝나거나 URL의 마지막인 부분이다. - 비계층 구조의 데이터를 가지며, 경로와 함께 리소스를 식별하는 역할을 한다.
-
key=value&key2=value2로 작성하는 것은 관례상 표현이며, 가장 널리 사용되고 있는 표현법이다.- query string 역시 query component의 동의어일 수 있으며, URL 정식 표현은 아니다.
- 관용상 표현에서 query component는 key와 value 한 쌍으로 되어 있고, Query String에 여러 개의 매개변수가 존재하는 경우엔
&기호로 구분된다. ?key=value&key2=value2을 Query String,key=value, key2=value2를 Query Parameter로도 구분하는 경우도 있다.
-
query component 내의 "/"나 "?"는 예약어로 사용되어 데이터를 나타낼 수도 있다.
?key=value/data=newData와 같은 표현이 가능하다.
-
URL에서 자원을 나타내는 기호들을 매개변수로 전달하는 경우 Encoding되어 전달된다.
+기호는 그대로 전달할 경우 공백으로 처리되기에 Encoding 하여 전달해야 한다.- 참고 자료 : SeongKuk Han Why Spaces Are Encoded
앵커(Anchor)
- 리소스 자체의 특정 부분에 대한 책갈피 같은 표시를 한다. (Anchor는 닻)
#로 시작하며,#뒤의 부분은 요청(request)와 함께 서버로 전송되지 않는 부분이다.- 바로 아래의 mdn web docs의 앵커 설명 링크를 보면 /What is a URL 뒤에
#%EC%95%B5%EC%BB%A4부분이 있는데, 이는 해당 웹 페이지의 앵커 위치로 바로 연결 시켜준다.