HTTP Message


1. HTTP Message 정의


HTTP Message는 크게 요청과 응답 메시지로 구분됩니다.

또한, Version에 따라 지원 가능한 Method가 존재합니다.


즉 HTTP/1.0 이하 Version일 때 GET 요청만 가능하며 응답 또한 text 타입으로 제한됩니다.



- Version별 지원 Method 현황


HTTP/0.9: "GET"

HTTP/1.0: "GET", "POST", "HEAD"

HTTP/1.1: "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "CONNECT"





HTTP Message 는 크게 라인, 헤더, 바디 영역으로 나뉘며, 또 여기서 헤더와 바디 영역은 공백으로 구분됩니다.


또한, 바디 영역을 제외한 나머지 영역(요청, 헤더)의 각 라인은 연속된 CR/LF(\r\n) 문자로 구분됩니다.





2. Message Herder:


일반(General)헤더: 요청과 응답 모두에 사용할 수 있는 헤더입니다.


요청(Request), 응답(Response)헤더: 각 요청과 응답 시에 사용되는 헤더입니다.


엔티티(Entity)헤더: 파일의 인코딩 방식, 최종 수정 일자와 같은 외형적인 정보를 나타내기 위해 쓰이는 헤더입니다.


- 헤더는 필요에 따라 사용자가 직접 정의해서 사용 가능하며, 이러한 모든 헤더는 엔티티 헤더로 분류되어 정의됩니다.





3. HTTP Request Method:




1. OPTIONS: 서버 자원 및 기능검색


- 보통 Web 서버가 어떤 Method를 지원하는지 알기 위해 사용합니다.




nate.com 에서 요청 가능한 Method는 Allow(OPTIONS, TRACE, GET, HEAD) 이며, 서버에서 지원 가능한 Method는 Public(OPTIONS, TRACE, GET, HEAD, POST) 입니다.




2. GET: URL의 서버 자원을 요청합니다.









서버에 전달되는 해당 데이터(파라메터)가 라인 영역의 Request-URL에 포함됩니다.




3. HEAD: 바디 영역을 제외한 서버 정보를 요청합니다.


- 보통 요청하는 URI의 자원 유/무를 알아내기 위해 사용됩니다.








4. POST




GET 요청과는 달리 해당 데이터(파라메터)가 Request-URL에 포함되지 않으며 요청 바디 영역에 포함됩니다.




5. PUT: 바디 영역의 내용을 실제 서버 URI 위치에 파일로 저장합니다.


하지만 이 때문에 서버 파일 조작이 가능해져 대부분의 웹 서버에서는 지원하지 않는 Method입니다.





6. DELETE: 서버에 저장된 자원을 삭제합니다.


하지만 이 때문에 서버 파일 조작이 가능해져 대부분의 웹 서버에서는 지원하지 않는 Method입니다.



7. TRACE: 요청 자원이 수신되는 경로를 보여줍니다.


8. CONNECT: 프록시와 같은 중간 서버에 터널을 형성하여 요청하기 위해 사용합니다.





참조사이트:


HTTP1.0-1.1 Protocol Massage & Header 구성요소: 

http://coffeenix.net/doc/network/http_1_0_vs_1_1.html



HTTP의 소개:

http://www.nicklib.com/bbs/board.php?bo_table=bbs_lecture&wr_id=32&page=3

http://www.nicklib.com/bbs/board.php?bo_table=bbs_lecture&wr_id=34&page=3


HTTP URL:

http://www.nicklib.com/bbs/board.php?bo_table=bbs_lecture&wr_id=35&page=3


HTTP Message:

http://www.nicklib.com/bbs/board.php?bo_table=bbs_lecture&wr_id=36&page=3


HTTP General:

http://www.nicklib.com/bbs/board.php?bo_table=bbs_lecture&wr_id=37&page=3


HTTP Request:

http://www.nicklib.com/bbs/board.php?bo_table=bbs_lecture&wr_id=38&page=3