티스토리 뷰
URL이란?
URL(Uniform resource locator)이란, 리소스 식별자이다. resource locator라는 말에서 알 수 있듯이, 리소스가 어딨는지 알려주는 아이라는 것이다.
우리는 웹에서 무수한 리소스들을 주고 받는다. 이미지, 텍스트, 동영상 등 모든 콘텐츠 소스를 리소스라고 보면 된다. 그런데 우리가 웹에서 보는 이 '리소스'들은 어디에서 오는 것인가? 그 리소스들의 주소를 알려주는 것이 URL이다.
HTTP
간단하게 HTTP를 짚고 넘어가자. HTTP란 HyperText Transfer Protocol의 약어로, 인터넷 상에서 데이터를 주고 받기 위한 프로토콜의 일종이다. 프로토콜이란 규약이라는 뜻인데, 인터넷 통신을 하기 위해서는 정해진 형식이 있어야 하고, 널리 쓰이는 규약(프로토콜)이 HTTP라는 것이다. 이는 규약의 일종일 뿐이므로, 우리가 반드시 HTTP를 통해서만 통신해야 하는 것은 아니다. 예를 들어 파일을 주고 받을 때에는 FTP라는 파일 전송 프로토콜을 사용할 수도 있다.
즉 통신을 할 때에는 아무렇게나 하는 게 아니고 HTTP에서 정해진 형식에 맞게 주고 받는다. 이를 HTTP 메시지라고 한다. 클라이언트에서 서버로 요청을 보낼 때에도, 서버에서 클라이언트에게 응답을 할 때에도 HTTP 메시지 형식에 맞추어 보낸다. 참고로 이 메시지는 (1) 시작줄, (2) 헤더, (3) 본문으로 이루어져 있다. (이 포스팅에서는 URL에 초점을 맞추므로 넘어간다)
URL 분석
이제 URL이 어떻게 생겼는지 그 구성요소를 살펴보자. 자주 쓰이지 않는 것들은 생략하였다.
<스킴>://<호스트네임>:<포트>/<경로>?<쿼리>#<프래그먼트>
예를 들어 http://www.example.com:80/interestingThings?item=1234&color=black#show
이런 이상한 url이 있다고 가정하자. 여기서 스킴은 http, 호스트네임은 www.example.com, 포트는 80, 경로는 /interestingThings , 쿼리는 item=1234&color=black, 프래그먼트는 show 이다. 각각의 구성 요소가 어떤 것을 나타내는지는 아래와 같다.
스킴: 리소스를 가져오기 위해 어떤 프로토콜을 사용하여 서버에 접근하는지를 가리킨다
호스트네임: IP 주소 라고도 한다. 리소스를 호스팅하는 서버의 호스트명이나 IP 주소.
포트: 리소스를 호스팅하는 서버가 열어 놓은 포트번호. HTTP의 기본 포트는 80이다.
경로: 해당 IP 주소를 가진 서버 내에 리소스가 어디에 있는지 가리킨다.
쿼리: ? 로 구분되며 스킴에서 애플리케이션에 파라미터를 전달하는 데 쓰인다.
프래그먼트: # 으로 구분된다. 일반적으로 HTTP 서버는 객체 일부가 아닌 전체만 다루기 때문에 프래그먼트 필드는 서버에 전달되지 않으며 클라이언트에서만 사용한다. 프래그먼트는 웹페이지의 일부를 가리키는 데 사용된다.
'공부일지(TIL) > Web' 카테고리의 다른 글
NPM & Yarn Dependency model (0) | 2021.03.10 |
---|---|
History Type - Browser, Hash (0) | 2021.02.16 |
History Object and Methods (0) | 2021.02.15 |
번들러(The Bundler) (1) | 2019.07.26 |
Modules (0) | 2019.03.20 |
- Total
- Today
- Yesterday
- SQL
- youtube data api
- jQuery
- Session
- this
- 제네릭스
- 자바
- rxjs
- 인스턴스
- useEffect
- package.json
- Java
- c언어
- 개발 공부
- react
- GIT
- Conflict
- Data Structure
- 깃
- Redux
- getter
- oracle
- 포인터 변수
- 알고리즘
- Prefix Sums
- til
- linkedlist
- JavaScript
- 리덕스
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |