본문 바로가기

Development/HTTP

3. HTTP 메시지 - 기본 구조

HTTP 메시지란? 텍스트 메타 정보와 데이타로 구분할 수 있다 .


HTTP 메시지는 클라이언트의 요청이 서버방향으로 이동하며(인바운드) , 서버에서 처리가 끝난 뒤 결과값을 클라이언트로 리턴해준다(아웃바운드)

또한 메시지는 항상 다운스트림으로 흐르며, 발송자는 수신자의 업스트림이다


HTTP 메시지


단순한 데이타의 구조화된 블록이라 할 수 있다. 시작줄 / 헤더 / 바디 이렇게 세 부분으로 이루어진다.


- 시작줄 ? 

Request 시, 메서드와 요청 URL, HTTP version ( GET /exam/help.txt HTTP/1.1 )

Response 시, HTTP version, 상태 코드 및 사유 구절 ( HTTP/1.1 200 OK )


- 메서드  ? 

Request 의 시작줄은 메서드로 시작하며, 기본적으로 정의된 메서드도 있고, 확장하여 만들 수도 있다.


메서드 

설명 

Body 

GET 

서버에서 데이타를 가져온다 

필요 없음 

HEAD 

서버에서 데이타의 헤더만 가져온다 

필요 없음 

POST 

 서버에서 데이타에 대해 어떤 처리를 요청한다

필요 함 

 PUT

 서버에서 요청 바디를 저장함

필요 함 

 TRACE

 메시지가 서버에 도달하는 과정을 추적

필요 없음 

 OPTIONS

 서버가 어떤 메서드를 수행할 수 있는지 확인

필요 없음 

 DELETE

 서버에서 데이타를 삭제한다

필요 없음 

* POST는 데이타를 보내는 것이 목적이며, PUT은 데이타를 저장하는 것이 목적이다 


- 상태코드와 사유구절 ?

클라이언트에게 무엇이 일어났는지 말해준다


상태코드의 종류


100-199 정보

200-299 성공

300-399 리다이렉션

400-499 클라이언트 에러

500-599 서버 에러


ex. 200 OK , 404 Not Found


상태 코드는 현재 프로토콜의 확장으로 새롭게 정의할 수도 있다.


- 헤더 ?

구조->  Name : Value (CRLF), 각 헤더는 반드시 CRLF 로 끝나야 한다

요청과 응답메시지에 추가적인 정보를 담고 있다. name - value 의 쌍 목록이다.

ex. Content-length: 255


요청과 응답에 따라 요청헤더, 응답헤더, 일반헤더(양쪽 다)로 나눌수 있고,

또한 Entity 헤더는 본문 크기, 콘텐츠 또는 리소스 그 자체를 말한다. 헤더 역시 확장하여 새로 정의할 수 있다.


- 바디 ?

실제 데이타의 본문. 텍스트, 이미지, 비디오, HTML 문서, 소프트웨어 애플리케이션 등 여러 종류의 데이타가 가능 





'Development > HTTP' 카테고리의 다른 글

HTTP 메시지 헤더에 대해 조금 더 . . .  (0) 2016.07.21
HTTP 메시지 - 메서드  (0) 2016.07.20
3. HTTP 메시지 - 기본 구조  (0) 2016.07.20
2. URL과 리소스 - URL 단축과 확장, 설계  (0) 2016.07.17
2. URL과 리소스 - URL 문법  (0) 2016.07.15
1. HTTP 개관  (0) 2016.07.14