[HTTP] 2. URL과 리소스(미완)

Beani._.i·2023년 2월 21일
1

네트워크

목록 보기
2/2
post-thumbnail

URL(Uniform Resource Locator)은 인터넷의 리소스를 가리키는 표준이름이다.

  • URL 문법, URL 컴포넌트의 의미와 수행 행동
  • 웹 클라이언트가 지원하는 상대 URL, 확장 URL(단축 URL)
  • URL의 인코딩과 문자 규칙
  • 공통 URL 스킴
  • URN을 포함한 URL의 미래

2.1 인터넷의 리소스 탐색하기

URL은 브라우저가 필요한 정보의 리소스의 위치를 가리키며 공유할 수 있다.

URL을 사용하면 인터넷이 있는 어떤 리소스든지 가리킬 수 있다.

URL을 사용하면 일관된 방식으로 리소스를 지칭할 수 있다.

URL의 구조

URI 통합자원 식별자

  • URL 리소스가 어디있는지 설명해서 리소스 식별
  • URN 리소스의 이름만으로 식별

1. http는 URL의 스킴이다. 스킴은 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다.

2. 서버의 위치다. 웹 클라이언트가 리소스가 어디에 호스팅 되어있는지 알려준다.

3. 리소스의 경로다. 서버에 존재하는 로컬 리소스들 중에서 요청받은 리소스가 무엇인지 알려준다.

다른 프로토콜

mailto: 이메일 주소

ftp: 서버에 올라가 있는 파일

rtsp: 스트리밍을 제공하기 위해 비디오 서버에서의 영화 파일

2.2 URL 문법

URL은 스킴에 따라서 달라진다.

URL의 스킴의 문법은 9개 부분으로 나뉜다.

컴포넌트설명기본값
스킴리소스를 가져오려면 어떤 프로토콜을 사용하여 서버에 접근해야 하는지 가리킨다.없음
사용자이름몇몇 스킴은 리소스에 접근하기 위해 사용자 이름을 요구한다.anonymous
비밀번호사용자의 비밀번호를 가리키며, 사용자 이름에 콜론(:)으로 이어서 가리킨다.<이메일 주소>
호스트리소스를 호스팅하는 서버의 호스트 명이나 IP 주소없음
포트리소스를 호스팅하는 서버가 열어놓은 포트번호(HTTP의 기본 포트는 80이다.)스킴에 따라 다름
경로이전 컴포넌트와 빗금(/)으로 구분되어 있으며, 서버 내 이소스가 어디에 있는지를 가리킨다.없음
파라미터파라미터는 이름/값을 쌍으로 가진다.다른 파라미터나 경로의 일부와 세미콜론(;)으로 구분하며, 여러 개를 가질 수 있다.없음
질의스킴에서 애플리케이션에 파라미터를 전달하는데 쓰인다. 공통포맷 없음, URL의 끝에 ? 로 구분한다.없음
프래그먼트리소스의 조각이나 일부분을 가리키는 이름이다. URL의 끝에서 #문자로 구분한다.없음

2.3.1 스킴 : 사용할 프로토콜

규칙

  • 알파벳으로 시작
  • URL의 첫번째와 나머지 부분은 :(콜론) 구분한다
  • 스킴명은 대소문자를 가리지 않는다.

EX) 대소문자 구분하지 않는다.
http://www.naver.com
HTTP://WWW.NAVER.COM

2.3.2 호스트와 포트

애플리케이션이 인터넷에 있는 리소스를 찾으려면, 리소스를 호스팅하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지 알아야 한다.

호스트 컴포넌트

접근하려고 하는 리소스를 가지고 있는 인터넷 상의 호스트 장비를 가리킨다.

EX) 같은 리소스를 가리킨다.
http://www.joes-hardware.com:80/index.html -호스트명
http://161.58.228.45:80/index.html - IP주소

포트 컴포넌트

서버가 열어놓은 네트워크 포트를 가리킨다.

내부적으로 TCP 프로토콜을 사용하는 HTTP는 기본 포트로 80을 사용한다.

2.3.3 사용자 이름과 비밀번호

많은 서버가 데이터에 접근을 허용하기 전에 이름과 비밀번호를 요구한다.

2.3.4 경로

  • 리소스가 어디에 있는지 알려준다.
  • HTTP URL에서 경로 컴포넌트는 '/'문자를 기준으로 경로 조각으로 나뉜다.
  • 각 경로조각은 자체만의 파라미터 컴포넌트를 가질 수 있다.

2.3.5 파라미터

리소스에 접근하려면 프로토콜 파라미터가 필요하다.
이름/값 쌍의 리스트로 URL 나머지 부분들로부터 ; 문자로 구분하여 URL에 기술한다.
파라미터를 통해 리소스에 접근하는데 추가 정보를 전달할 수 있다.
EX)
ftp://www.test.com/fruits;sale=false/index.html;

2.3.6 질의 문자열

? 문자로 구분하여 URL에 기술한다.
특정 문자들을 제외하고는 포맷에 제약사항은 없다.
대부분 & 문자로 구분하고 이름=값 쌍형식의 질의 문자열을 사용한다.
EX)
ftp://www.test.com/fruits-list.cgi?item=101010

2.3.7 프래그먼트

리소스의 특정 부분을 가리킬 수 있도록, URL은 리소스 내의 조각을 가리킬 수 있는 프래그먼트 컴포넌트를 제공한다.

http://www.test.com/member.html#name

  • 일반적으로 HTTP 서버는 객체 일부가 아닌 전체만 다룬다.
  • 클라이언트는 서버에 프래그 먼트를 전달하지 않는다.
  • 브라우저가 서버로부터 전체 리소스를 받은후 해당 프래그먼트를 사용하여 클라이언트가 보고자 하는 일부를 보여준다.

2.3 단축 URL

2.3.1 상대 URL

2.3.2 URL 확장

2.4 안전하지 않은 문자

URL 문자 집합

인코딩 체계

문자 제한

2.5 스킴의 바다

2.6미래..?

2.7추가 정보

profile
어제보다 하나라도 더 알았으면 괜찮다!!!

0개의 댓글