프론트엔드/HTTP - 전

Identifying resources on the Web

5ub1n 2024. 3. 12. 09:18

웹에서 리소스 식별하기


HTTP 요청의 대상을 "리소스"라고 하며, 그 속성(문서, 사진 등을 구별하는 데이터 유형)은 더 이상 HTTP 프로토콜에서 정의되지 않는다.

이것은 문서, 사진, 혹은 그 밖의 다른 것일 수 있다.

각 리소스는 리소스들을 식별하기 위해 HTTP 전체에서 사용되는 URI(Uniform Resource Identifier)로 식별된다.

 


URL 및 URN URLs and URNs


URL URLs

가장 일반적인 형태의 URI는 웹 주소로 알려진 URL(Uniform Resource Locator)이다.

 

HTTPs://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
https://developer.mozilla.org/en-US/search?q=URL

 

해당 URL 중 하나를 브라우저의 주소 표시줄에 입력하여 관련 페이지(리소스)를 로드하도록 지시할 수 있다.

URL은 여러 부분으로 구성되며, 일부는 필수적인 부분도 있고 다른 것들은 선택적인 부분도 있다.

좀 더 복잡한 예로는 다음이 있다.

 

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTherDocument

 


URN URNs

URN(Uniform Resource Name)은 특정 네임스페이스에서 이름으로 리소스를 식별하는 URI다.

 

urn:isbn:9780141036144
urn:ietf:rfc:7230

 

두 URN은 다음에 해당한다.

  • 조지 오웰의 '1984'라는 책에 해당된다.
    (아마존 사이트의 검색창에 '9780141036144'라고 검색하면 해당 책이 나온다)
  • IETF 사양 7230, 하이퍼텍스트 전송 프로토콜(HTTP/1.1): 메시지 구문 및 라우팅(Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing)에 해당된다.
    (RFC Search 사이트에서 '7230'이라고 검색하면 나온다)

 


URI구문 Syntax of Uniform Resource Identifiers (URIs)

 


스키마 또는 프로토콜 Scheme or protocol

 

프로토콜

 

http://는 프로토콜이다.

브라우저가 사용해야 하는 프로토콜을 나타낸다.

일반적으로 이것은 HTTP 프로토콜 또는 그 보안 버전인 HTTPS이다.

웹에서는 이 두가지 프로토콜중 하나가 필요하지만, 브라우저는 메일 클라이언트를 열기 위한 mailto: 또는 파일 전송을 처리하는 ftp: 등 다른 프로토콜을 처리하는 방법도 알고 있다.

그러므로 이러한 프로토콜이 보여도 놀라지 않도록 한다.

일반적인 방식은 다음과 같다.

 

스키마(프로토콜) 설명
data 데이터 URL Data URLs
file 호스트별 파일 이름 Host-specific file names
ftp 파일 전송 프로토콜 File Transfer Protocol
http/https 하이퍼 텍스트 전송 프로토콜(보안) Hyper test transfer protocol (Secure)
javascript URL이 포함된 JavaScript 코드 URL-embedded JavaScript code
mailto 전자 메일 주소 Electronic mail address
ssh 보안 쉘 Secure shell
tel 전화 telephone
urn 통합 자원 이름 Uniform Resource Names
view-source 리소스의 소스 코드 Source code of the resource
ws/wss WebSocket 연결(보안) WebSocket connections (Secure)

 


권한 Authority

 

도메인 이름

 

www.example.com은 네임스페이스를 관리하는 도메인 이름 또는 권한이다.  

이것은 요청중인 웹 서버를 나타낸다.

IP 주소를 직접 사용하는것도 가능하지만, 덜 편리하기 때문에 웹에서 자주 사용되진 않는다.

 


포트 Port

 

포트

 

:80은 포트다. 

이것은 웹사이트의 리소스에 엑세스할 때 사용되는 기술적 "게이트"를 나타낸다.

웹 서버가 HTTP 프로토콜의 표준 포트(HTTP의 경우 80, HTTPS의 경우 443)를 사용하여 웹 서버의 리소스에 대한 엑세스 권한을 부여하는 경우, 일반적으로 생략된다.

그렇지 않은 경우에는 필수다.

 


경로 Path

 

파일 경로

 

/path/to/myfile/html은 웹 서버에 있는 리소스의 경로다.

웹의 초창기에는 이와 같은 경로가 웹 서버의 실제 파일 위치를 나타냈다.

오늘날에는 이 파일 경로가 물리적 실체 없이 웹 서버에서 추상화로 처리된다.

 


쿼리 Query

 

매개변수

 

?key1=value1&key2=value2는 웹 서버에 제공되는 추가 매개변수다.

이러한 매개변수는 & 기호로 분리된 키/값 쌍의 목록이다.

웹 서버는 리소스를 사용자에게 반환하기 전에 매개변수를 사용하여 추가 작업을 수행할 수 있다.

각 웹 서버에는 매개변수와 관련된 자체 규칙이 있으며, 웹 서버가 매개변수를 어떻게 처리하는지 알 수 있는 유일하고 신뢰할 수 있는 방법은 서버 소유자에게 물어보는 것이다.

 


조각 Fragment

 

앵커

 

#SomewhereInTheDocument는 리소스 자체의 다른 부분(하나의 웹 페이지나 문서 내에서 다른 섹션, 다른 문단, 다른 요소 등)에 대한 앵커다.

앵커는 리소스 내부의 일종의 "북마크"를 나타내며, 브라우저에 "북마크된" 지점에 있는 콘텐츠를 보여주는 방향을 알려준다.

예를 들어, HTML 문서에서 브라우저는 정의된 앵커가 있는 포인트로 스크롤하고, 비디오 또는 오디오 문서에서는 브라우저가 앵커가 나타내는 시간으로 이동하려고 할 것이다.

조각(Fragment) 식별자로 알려진 #의 뒷부분은 요청과 함께 서버로 전송되지 않는다는 점에서 유의할 필요가 있다.

 


사용법 참고사항 Usage notes

HTML 콘텐츠에서 URL을 사용할 때는 일반적으로 URL 구성표 중 몇 가지만 사용해야 한다.

하위 리소스(더 큰 문서의 일부로 로드되는 파일)를 참조할 때는 HTTP 및 HTTPS 체계만 사용해야 한다.

점점 더 많은 브라우저들은 보안상의 이유로 FTP를 사용하여 하위 리소스를 로드하는 지원을 제거하고 있다.

 

일부 브라우저는 FTP 콘텐츠 로드를 다른 애플리케이션에 위임할 수 있지만, 최상위 수준(브라우저의 URL 표시줄에 직접 입력 또는 링크 대상)에서 여전히 FTP를 사용할 수 있다.

하위 리소스는 기본 HTML 문서 내에 포함되거나 참조되는 개별 파일 또는 리소스(이미지, 스타일시트, 스크립트 등)다.
이러한 하위 리소스는 더 큰 문서의 필수 구성 요소이며 웹 브라우저에 액세스 할 때 함께 로드된다.

HTML 콘텐츠(대형 문서의 일부로 로드되는 파일)의 하위 리소스를 참조할 때는 HTTP 및 HTTPS 체계만 사용하는 것이 좋다.
HTTP와 HTTPS가 웹 페이지에서 리소스를 로드하는데 가장 일반적으로 사용되고 널리 지원되는 프로토콜이기 때문이다.

HTML 콘텐츠의 하위 리소스에 대해 HTTP 및 HTTPS 체계를 고수하는 것이 바람직한 몇 가지 이유는 다음과 같다.

1. 호환성 : HTTP와 HTTPS는 웹 브라우저와 웹 서버에서 보편적으로 지원되므로 다양한 플랫폼과 환경 간의 호환성을 보장한다.
2. 보안 : HTTPS는 웹 서버와 클라이언트 사이에 보안 연결을 제공하여 둘 사이에 전송되는 데이터를 암호화한다.
특히 민감한 정보가 전송되는 경우, 데이터의 무결성과 기밀성을 보호하는 데 도움이 된다.
3. 성능 : HTTP/HTTS 기반 콘텐츠 전송 네트워크(CDN) 및 캐싱 메커니즘은 웹 콘텐츠를 효율적으로 전달하는 데 최적화되어 있다.
하위 리소스에 HTTP/HTTPS를 사용하면 웹 페이지의 로딩 시간과 전반적인 성능이 향상될 수 있다.
4. 브라우저 지원 : 최상위 탐색에는 FTP와 같은 다른 프로토콜이 지원될 수 있지만, HTTP/HTTPS 이외의 프로토콜을 사용하여 하위 리소스 로드에 대한 지원은 브라우저마다 다를 수 있다.
하위 리소스에만 HTTP/HTTPS를 사용하면 다양한 브아루저에서 일관된 동작을 보장할 수 있다.
5. 보안 모범 사례 : 최소 권한 원칙에 따라, 특히 명시적으로 필요하지 않은 경우에 웹 콘텐츠 내에서 FTP와 같은 민감한 프로토콜의 노출을 제한하는 것이 가장 좋다.
필수적이지 않은 프로토콜의 사용을 제한하면 공격 표면이 줄어들고 잠재적인 보안 위험을 완화하는 데 도움이 된다.

전반적으로 HTML 콘텐츠의 하위 리소스를 로드하기 위해 HTTP 및 HTTPS를 고수하면 다양한 브라우저와 플랫폼에서 웹 페이지의 최적의 호환성, 보안 및 성능이 보장된다.

예제 Examples

https://developer.mozilla.org/en-US/docs/Learn
tel:+1-816-555-1212
git@github.com:mdn/browser-compat-data.git
ftp://example.org/resource.txt
urn:isbn:9780141036144
mailto:help@supercyberhelpdesk.info

 


 

Identifying resources on the Web - HTTP | MDN

The target of an HTTP request is called a "resource", whose nature isn't defined further; it can be a document, a photo, or anything else. Each resource is identified by a Uniform Resource Identifier (URI) used throughout HTTP for identifying resources.

developer.mozilla.org