HTTP 완벽가이드 - HTTP 개관
03 Jan 2018 | HTTP1. HTTP 개관
1.1 HTTP
1.2 웹 클라이언트와 서버
1.3 리소스
1.3.1 미디어타입
MIME(Multipurpose Internet Mail Extensions) : 원래는 전자 메일 시스템에서 사용되었으나 HTTP에서도 멀티미디어 콘텐츠를 기술하고 라벨을 붙이기 위해 채택
1.3.2 URI (uniform resource indentifier)
URI는 URL과 URN으로 나누어진다.
1.3.3 URL
URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다
URL의 구성 요소
- 스킴(scheme) : 리소스에 접근하기 위해 사용되는 프로토콜을 서술
- 서버의 인터넷 주소
- 웹서버의 리소스
오늘날 대부분의 URI는 URL이다.
1.3.4 URN (uniform resource name)
유니폼 리소스 이름 : 아직 실험 중인 상태이다.
1.4 트랜잭션
HTTP 트랜잭션은 요청 명령과 응답 결과로 구성
1.4.1 메서드
흔히 사용되는 HTTP 메서드
HTTP 메서드 | 설명 |
GET | 서버에서 클라이언트로 지정한 리소스를 보내라 |
PUT | 클라이언트에서 서버로 보낸 데이터를 지정한 이름의 리소스로 저장하라 |
DELETE | 지정한 리소스를 서버에서 삭제하라 |
POST | 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 보내라 |
HEAD | 지정한 리소스에 대한 응답에서, HTTP 헤더 부분만 보내라 |
1.4.2 상태코드
모든 HTTP 응답 메시지는 상태 코드와 함께 반환 된다. 클라이언트에 요청 처리의 상태를 알려주는 세자리 숫자이다
흔히 사용되는 HTTP 상태 코드
HTTP 상태 코드 | 설명 |
200 | 문서가 바르게 반환되었다. |
302 | 다시 보내라. 다른 곳에 가서 리소스를 가져가라 |
404 | 없음. 리소스를 찾을 수 없다. |
1.4.3 웹페이지는 여러 객체로 이루어질 수 있다
애플리케이션은 보통 하나의 작업을 수행하기 위해 여러 HTTP 트랜잭션을 수행한다. 예를 들어 웹브라우저는 시각적으로 풍부한 웹페이지를 가져올 때 대량의 HTTP 트랜잭션을 수행한다. 페이지 레이아웃을 서술하는 HTML ‘뼈대’를 한 번의 트랜잭션으로 가져온 뒤, 첨부된 이미지, 그래픽 조각, 자바 애플릿 등을 가져오기 위해 추가적으로 HTTP 트랜잭션을 수행한다.
‘웹페이지’는 보통 하나의 리소스가 아닌 리소스의 모음이다
1.5 메시지
HTTP 메시지는 단순한 줄 단위의 문자열 이다.
HTTP 메시지의 구성
시작줄
요청이라면 무엇을 해야 하는지 응답이라면 무슨 일이 일어났는지 나타낸다.
헤더
시작줄 다음에는 0개 이상의 헤더 필드가 이어진다. 각 헤더 필드는 쉬운 구문분석을 위해 쌍점(:)으로 구분되어 있는 하나의 이름과 하나의 값으로 구성된다. 헤더 필드를 추가하려면 그저 한 줄을 더하기만 하면 된다. 헤더는 빈 줄로 끝난다.
본문
빈 줄 다음에는 어떤 종류의 데이터든 들어갈 수 있는 메시지 본문이 필요에 따라 올 수 있다. 요청의 본문은 웹 서버로 데이터를 실어 보내며, 응답의 본문은 클라이언트로 데이터를 반환한다. 문자열이며 구조적인 시작줄이나 헤더와 달리, 본문은 임의의 이진 데이터를 포함할 수 있다(이미지, 비디오, 오디오 트랙, 응용소프웨어). 물론 본문은 텍스트도 포함할 수 있다.
1.6 TCP 커넥션
1.7 프로토콜 버전
1.8 웹의 구성요소
프록시
클라이언트와 서버 사이에 위치한 HTTP 중개자
캐시
많이 찾는 웹페이지를 클라이언트 가까이에 보관하는 HTTP 창고
게이트웨이
다른 애플리케이션과 연결된 특별한 웹 서버
터널
단순히 HTTP 통신을 전달히기만 하는 특별한 프록시
에이전트
자동화된 HTTP 요청을 만드는 준지능적(semi-intelligent) 웹클라이언트
Comments