URL과 리소스

DevSeong2·2021년 7월 15일
0

HTTP

목록 보기
2/7
『HTTP 완벽 가이드』 교재와 다른 레퍼런스를 참고하여 작성하였습니다.

URL과 리소스

URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리키며, URL을 이용해 사람과 애플리케이션이 인터넷상의 수십억 개의 리소스를 찾고 사용, 공유할 수 있습니다. 사용자는 브라우저에 URL을 입력하고 브라우저는 화면 뒤에서 사용자가 원하는 리소스를 얻기 위해서 적절한 프로토콜을 사용하여 메시지를 전송합니다.

리소스 탐색하기

URL을 사용하면 리소스를 일관된 방식으로 지칭할 수 있습니다.
대부분의 URL은 스킴://서버위치/경로 구조로 이루어져 있습니다. 따라서 인터넷상의 모든 리소스를 가리키고 가져오기 위해, 모든 사람이 같은 방식으로 이름을 써서 리소스를 찾을 수 있도록, 단일 방식의 작명 규칙을 가진 것입니다. URL을 사용하면 하나의 인터페이스를 통해 일관된 방식으로 많은 리소스에 접근할 수 있습니다.

URL 문법

대부분의 URL 스킴의 문법은 일반적으로 9개 부분으로 나뉩니다.
<스킴>:// <사용자 이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프래그먼트>

스킴 : 리소스를 가져오려면 어떤 프로토콜을 사용하여 서버에 접근해야하는지
사용자이름 : 몇몇 스킴은 리소스에 접근을 하기 위해 사용자 이름을 필요로 합니다. (예: FTP서버)
비밀번호 : 사용자의 비밀번호를 가리키며, 사용자 이름에 콜론(:)으로 이어서 기술합니다.
호스트 : 리소스를 호스팅하는 서버의 호스트 명이나 IP 주소
포트 : 리소스를 호스팅하는 서버가 열어놓은 포트번호. 많은 스킴이 기본 포트를 가지고 있습니다.
경로 : 이전 컴포넌트와 빗금(/)으로 구분되어 있으며, 서버 내 리소스가 서버 어디에 있는지 알려줍니다.
파라미터 : 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용합니다. 파라미터는 이름/값을 쌍으로 가지며 여러개를 가질 수 있습니다.
질의 : 요청받을 리스소스 형식의 범위를 좁히기 위해 스킴에서 애플리케이션에 파라미터를 전달하는데 사용
프래그먼트 : 리소스의 조각이나 일부분을 가리키는 이름

단축 URL

상대 URL은 리소스 안에 있는 리소스를 간결하게 기술하는데 사용할 수 있습니다. 많은 브라우저가 사용자가 기억하고 있는 URL 일부를 입력하면 나머지 부분을 자동으로 입력해주는 URL '자동 확장'을 지원합니다.

상대 URL

URL은 상대 URL과 절대 URL 두 가지로 나뉘는데 절대 URL은 리소스에 접근하는데 필요한 모든 정보를 가지고 있습니다. 그와 달리 상대 URL은 기저(base)라고 하는 다른 URL을 사용하여 짧게 표시하는 방식입니다.
URL에 스킴과 호스트 그리고 다른 컴포넌트들을 모두 입력하지 않아도 리소스의 기저 URL에서 알아낼 수 있습니다.

URL 확장

호스트 명 확장

호스트 명 확장 기능을 지원하는 브라우저는 단순한 휴리스틱만을 사용해서 입력한 호스트 명을 전체 호스트 명으로 확장할 수 있습니다.
주소 입력란에 'google'을 검색 ➡ 자동으로 'www.'와 '.com'을 붙여서 'www.google.com'

히스토리 확장

사용자가 URL을 입력하는 시간을 줄이고자, 브라우저는 과거에 사용자가 방문했던 URL의 기록을 저장해 놓는 기술을 사용합니다.

안전하지 않은 문자

안전한 전송이란, 정보가 유실될 위험 없이 URL을 전송할 수 있다는 것을 의미합니다. 문자가 제거되는 일을 피하고자 URL은 상대적으로 작고 일반적으로 안전한 알파벳 문자만 포함하도록 허락합니다.(SMTP 같은 프로토콜은 특정 문자를 제거할 수도 있음) 일반적으로 알파벳 외의 문자도 포함하려고 할 때가 있기에 이스케이프라는 기능을 추가하여, 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게 되었습니다.

URL 문자 집합

컴퓨터 시스템의 기본 문자 집합은 보통 영어 중심으로 설정되어 있었으므로 US-ASCII 문자 집합을 사용해왔습니다. 하지만 이는 만들어진 지 오래된 문자 집합이기 때문에 여러 언어들을 지원할 수 없었습니다. 뿐만 아니라 URL이 특정 이진 데이터를 포함해야 하는 경우도 있었기 때문에 URL에 이스케이프 문자열을 쓸 수 있게 되었습니다.

이스케이프 문자
이스케이프 문자는 이스케이프 시퀀스를 따르는 문자들로서 다음 문자가 특수 문자임을 알리는 백슬래시(\)를 사용한다.

인코딩 체계

안전한 문자 집합을 이용하는 경우 그 표현의 한계를 넘기 위해, URL에 있는 안전하지 않은 문자들을 표현할 수 있는 인코딩 방식이 고안되었습니다. 인코딩은 안전하지 않은 문자를 퍼센티지 기호(%)로 시작해, ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 '이스케이프' 문자로 바꿉니다.

문자 인코딩
문자 인코딩(영어: character encoding), 줄여서 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다.
...
초기 보급형 컴퓨터의 문자열 세트는 아스키나 EBCDIC이 표준이었으나, 이러한 문자열 세트는 세계 곳곳에 인터넷이 보급되며 표현해야 할 문자가 증가하면서 이러한 문자셋들을 표준화하기 위해 많은 대체 방식이 개발되었다.

문자 제한

일부 제어 시퀀스인 이스케이프 문자들은 미리 특별한 의미로 예약되어 있습니다.

스킴 목록

UriSchemes

Reference

📗 What is a URL?
📗 Naming and Addressing: URIs, URLs, ...
📗 HTTP 완벽 가이드

profile
차근차근

0개의 댓글