좌충우돌 개발

HTTP 완벽가이드 - HTTP 개관

|

1. 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