[HTTP 완벽 가이드] URL과 리소스

Urther·2022년 7월 24일
0

HTTP 완벽 가이드

목록 보기
2/4

HTTP 완벽 가이드를 읽고 정리한 글입니다 📒

2장 URL과 리소스

2장의 처음 비유가 마음에 들어서 끌어오고 싶다.
인터넷 세계가 만약 관광지라고 생각해보자. 관광지에는 주요 볼거리, 서비스 등이 있는데 그것들을 각각의 프로토콜로 정의하는 것이다.

예를 들면, 맛집을 찾아가려면 집 주소가 필요하고 예약 문의를 하려면 전화 번호를 사용해야하는 것처럼 인터넷도 작명에 대한 표준이 있다. 이를 통해 넓은 인터넷 세상에서 리소스를 쉽게 공유할 수 있는 것이다. 인터넷 리소스를 가르키는 표준 이름은 URL 이라고 한다.

1. URL 의 구조

대부분의 URL은 다음과 같은 구조를 갖는다.

  • 스킴
    • HTTP에 해당한다. 리소스에 대해 어떻게 접근할지 알려준다.
    • HTTP 프로토콜이 아닌 다른 가용한 프로토콜을 사용할 수 있다. mailto는 이메일 주소를 가르키며, ftp는 서버에 올라가 있는 파일을 가르킨다.
  • 서버 위치
    • 리소스가 어디에 호스팅 되어 있는지 확인한다.
  • 경로
    • 서버 위치로 이동해서 로컬 리소스 중 어떤 자원을 요청할지에 대해 명시한다.

이러한 구조를 통해 인터넷을 이용하는 웹 클라이언트는 리소스를 쉽게 공유할 수 있었다. 하지만, 처음부터 이러한 명명 규칙이 있었던 것이 아니다

URL이 있기전에는 ?

URL 이 있기 전 catalog.xls에 파일을 공유하고자 했다면, ftp/joes.com에 FTP로 접속해서 익명의 사용자로 로그인한 다음 비밀번호로 이름을 입력한 다음.pub 디렉토리로 이동한 다음 바이너리 형태로 변환한다. 그리고 catalog.xls 파일을 다운 받는다.

고등학교 1학년 때 였나, 중학교 때쯤이 었나 알FTP 로 홈페이지 만들어서 리소스 업로드하고 그랬었는데 .. 10년전인데 기억이 새록새록하다.

읽기만 해도 번거로운 과정이 이루어진다.

URL 문법

위에서 스킴은 http, ftp 로 적혀있어서 그렇게 이해했는데 책에서 스킴 문법이라고 해서 스킴 문법이 뭐지? 라고 생각해서 헷갈렸다. 그냥 간단하게 URL 문법이다.

위에서 언급된 스킴, 호스트와 포트(서버 위치), 경로에 대한 설명은 스킵하려고 한다.

1. 스킴

2. 호스트와 포트

3. 사용자 이름과 비밀번호

ftp 프로토콜로 이용하는 것이 대표적인 예가 될 수 있다.

ftp://anonymous:my_password@ftp.prep.ai

사용자의 이름과 Password를 요구하는 경우가 있다. 만약 설정되어 있지 않은 경우는 브라우저 별로 default 의 이름 (anonymous) 와 비밀번호를 기재해서 넣어준다.

4. 경로

5. 파라미터

위에서 언급한 대부분의 URL 스킴/서버위치/경로 이다. 이렇게 된 요청도 물론 수행할 수 있지만, 이것만으로는 정보가 부족할 때가 있다. 예를 들면 item이라는 정보중 1237번이라는 item 을 가져오거나, isWithdrwal=false 로, 탈퇴하지 않은 회원을 가져오는 경우가 있다.

ftp://prep.ai.mit.edu/gnu;type=d

파라미터는 이름과 값으로 나누어져 있다. type은 이름이고, d는 이름이다.

6. 질의 문자열

데이터베이스와 같은 서비스들은 요청 받을 리소스 형식의 범위를 좁히기 위해서 질문이나 질의를 받을 수 있다.

서버 측에 1273번의 id를 가진, size가 large인 데이터를 서버에 요청한다고 친다. 그 때, 서버는 재고 확인을 하는 게이트에 item=1273&size=large인 요청을 한다.

7. 프래그먼트

HTML과 같은 리소스 형식은 원래보다 더 작게 나눌 수 있다. 리소스의 특정 부분을 가르킬 수 있도록 URL은 프래그먼트 컴포넌트를 제공한다.

http://www.joes-hardware.com/tools.html#drills

클라이언트는 드릴을 요청하는 #drills를 서버측에 제공하진 않는다. 그러나, 브라우저가 서버를 통해 tools.html 파일을 다운 받은 후, 프래그먼트인 #drills를 사용하여 관련 내용의 일부만 사용자에게 보여준다.


Reference | HTTP 완벽 가이드 - 웹은 어떻게 동작하는가 , 오라일리

profile
이전해요 ☘️ https://mei-zy.tistory.com

0개의 댓글