웹 서버는 리소스를 관리하고 제공한다.
가장 단순한 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다.
리소스는 반드시 정적 파일이어야할 필요는 없다. 리소스는 요청에 따라 콘텐츠를 생산하는 프로그램이 될 수도 있다. ( WAS 도 리소스라는 말이네? )
🐰 미디어 타입
HTTP는 웹에서 전송되는 객체 각각에 MIME 타입이라는 데이터 포멧 라벨을 붙인다.
웹브라우저는 서버로부터 객체를 돌려받을 때, 다룰 수 있는 객체인지 MIME 타입을 통해 확인한다.
MIME타입은 / 으로 구분된 primary object type과 specific subtype으로 이루어진 문자열 라벨이다. 예를 들면 다음과 같다.
- HTML로 작성된 텍스트 문서는 text/html 라벨이 붙는다.
- plain ASCII 텍스트 문서는 text/plain 라벨이 붙는다.
- JPEG 이미지는 image/jpeg가 붙는다.
- 애플 퀵타임 동영상은 video/quicktime 이 붙는다.
🐰 URI
서버 리소스 이름은 통합 자원 식별자(Uniform Resource Identifier), 혹은 URI로 부른다.
URI는 URL URN 두 가지가 있다.
URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다.
URN은 컨텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다.
HTTP 트랜잭션은 요청 명령과 응답 결과로 구성되어 있다.
이 상호작용은 HTTP 메시지라고 불리는 정형화된 데이터 덩어리를 이용해 이루어진다.
😸 메서드
HTTP는 HTTP 메서드라고 불리는 여러 종류의 요청 명령을 지원한다.
모든 HTTP 요청 메시지는 한 개의 메서드를 갖는다.
메서드는 서버에게 어떤 동작이 취해져야 하는지 말해준다.
👑흔히 쓰는 HTTP 메서드들
HTTP 메서드 | 설명 |
---|---|
GET | 서버에게 클라이언트로 지정한 리소스를 보내라. |
PUT | 클라이언트에게 서버로 보낸 데이터를 지정한 이름의 리소스로 저장하라. |
DELETE | 지정한 리소스를 서버에서 삭제하라. |
POST | 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 보내라. |
HEAD | 지정한 리소스에 대한 응답에서, HTTP 헤더만 보내라. |
TCP는 다음을 제공한다.
- 오류 없는 데이터 전송
- 순서에 맞는 전달(데이터는 언제나 보낸 순서대로 도착한다.)
- 조각나지 않는 데이터 스트림(언제든 어떤 크기로든 보낼 수 있다.)