개발/HTTP

[HTTP] URL과 리소스

devhooney 2022. 7. 5. 08:55
728x90

HTTP 완벽가이드 읽은 후 정리

목차

- URL 문법, 여러 URL 컴포넌트가 어떤 의미를 가지며 무엇을 수행하는지

- 여러 웹 클라이언트가 지원하는 상대 URL과 확장 URL 같은 단축 URL에 대해서

- URL의 인코딩과 문자규칙

- 여러 인터넷 정보 시스템에 적용되는 공통 URL 스킴

- 기존 이름은 유지하면서 객체들을 다른 장소에 옮기는 것을 가능하게 해주는 URN을 포함한 URL의 미래

 

인터넷의 리소스 탐색하기

https://bebiangel.github.io/2019/08/11/http-guide-chap2/

- http는 url의 스킴

- www.joes-hardware.com은 서버의 위치

- /tools.html은 리소스의 경로

- url은 http프로토콜이 아닌 다른 프로토콜도 사용 가능

- mailto: ~

- ftp: ~

- rtsp: ~

 

URL 문법

https://velog.io/@warmwhiten/http-%EC%99%84%EB%B2%BD%EA%B0%80%EC%9D%B4%EB%93%9C-2%EC%9E%A5-URL%EA%B3%BC-%EB%A6%AC%EC%86%8C%EC%8A%A4

스킴: 사용할 프로토콜

- http:

- mailto:

- ftp:
등등...

 

호스트와 포트

http://www.joes-hardware.com:80/index.html
http://161.58.228.45:80/index.html

- 두 개의 url은 같음

- 첫 번째는 호스트명

- 두 번째는 ip

- 기본포트는 80

 

사용자 이름과 비밀번호

-  FTP 서버 예시

ftp://ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous@ftp.prop.ai.mit.edu/pub/gnu
ftp://anonymous:pwd@ftp.prop.ai.mit.edu/pub/gnu

- 첫 번째는 사용자 이름이나 비밀번호 없이 표준 스킴, 호스트, 경로만 있음. 사용자 이름과 비밀번호를 입력하지 않을 경우 기본 사용자 이름 값으로 'anonymous'가, 비밀번호는 브라우저마다 갖고있는 기본값을 사용한다.(크롬은 chrome@example.com)

- 두 번째는 사용자 이름만 있음 '@' 문자는 url로부터 사용자 이름과 비밀번호 컴포넌트를 분리함

- 세 번째는 사용자 이름과 비밀번호를 ':'로 분리하여 기술

 

경로

http://www.joes-hardware.com:80/seasonal/index-fall.html

- '/'를 기준으로 경로조각으로 나뉘며, 각 경로조각은 자체만의 파라미터 컴포넌트를 가질 수 있다.

 

파라미터

http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true

- 위 url은 hammers와 index.html의 경로조각이 있음

- hammers는 값이 false인 sale이라는 파라미터를 갖는다.

- index.html은 값이 true인 graphics란 파라미터를 갖는다.

 

질의 문자열

http://www.joes-hardware.com/inventory-check.cgi?item=123&color=blue

- '&'로 두개의 질의 컴포넌트가 있음

 

프래그먼트

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

- 프래그먼트는 url의오른쪽에 '#'문자에 이어서 온다.

- #뒤에 붙은 값은 서버로 전달하지 않는다.

 

단축 URL

- 웹 클라이언트는 몇몇 단축 url을 인식하고 사용한다.

 

상대 URL

- 상대 url은 url을 짧게 표기하는 방식

http://www.joes-hardware.com/tools.html —>
<html>
  <head>
  	<title>Joe’s Tools</title>
  </head>
  <body>
    <h1>Hammers</h1>
    <p>Joe’s hardware online has the largest selection of
    	<a href=“./hammers.html”>hammers</a>on earth.
    </p>
  </body>
</html>

https://blog.minhoyun.dev/ko/posts/post/summary-of-http-the-definitive-guide-2

- 상대 url은 프래그먼트이거나 url 일부

- url을 처리하는 브라우저 같은 애플리케이션은 상대 url과 절대 url 간에 상호 변환을 할 수 있어야 한다.

 

https://blog.minhoyun.dev/ko/posts/post/summary-of-http-the-definitive-guide-2

- 주어진 경로는 ./hammers.html, 베이스 URL은 http://www.joes-hardware.com/tools.html

- 주어진 경로에 스킴은 생략되어 있으므로, 알고리즘도에 따라 베이스 URL의 스킴을 계승

- 주어진 경로는 적어도 하나의 구성요소는 갖고 있으므로, 아래로 내려가 호스트와 포트번호를 계승

- 상대 URL에 존재하는 구성요소와 지금까지 계승받았던 다른 요소들을 결합해, 절대 URL을 완성

 

URL 확장

- 호스트명 확장:
주소창에 yahoo를 입력하면 www.yahoo.com을 만든다.

- 히스토리 확장:
주소창에 http://www.joes~ 를 입력하면 http://www.joes-hardware.com로 연결해준다.

728x90

'개발 > HTTP' 카테고리의 다른 글

[HTTP] 커넥션 관리  (2) 2022.08.08
[HTTP] HTTP 메시지  (0) 2022.07.06
[HTTP] HTTP 개관  (0) 2022.07.01