Programming/Web

[HTTP] HTTP란? 특징 및 구성요소 - Request, Response, Structure, Method, Reponse Code

쌍쌍바나나 2016. 4. 15. 07:56
반응형

들어가며

  HTTP는 Hyper-Text Transfer Protocol over TCP/IP로서 우리가 흔히 실생활에서도 많이 사용을 하고 있습니다. 예를 들어서 인터넷에 접속하면 우리는 HTTP요청을 하고, 그 요청에 대한 응답을 받는형태로 인터넷을 통해 정보를 주고 받고 있습니다. 그렇다면 HTTP란 무엇이며 특징은 어떤 것이 있는지 알아보겠습니다. 또한 Request와, Response의 Method, Structure, 그리고 Response Code에 대해서 설명하겠습니다.

특징

  • Connectionless :  Connectionless로는 예를들어 우리가 채팅 프로그램, 게임을 만든다면 데이터를 주고받는 통로를 만든 후에 즉, 연결을 유지하면서 통신을 하게 됩니다. 하지만 HTTP는 연결을 유지하지 않은체 데이터를 주고 받을 수 있습니다.
  • Stateless :  Stateless는 요청을 독립적인 트랜잭션으로 취급하는 통신을 의미합니다. 즉 이전 요청과 다음 요청간에 관계가 없기 때문에 저장공간을 동적으로 따로 할당할 필요가 없기 때문에 서버에서는 요청간에 관계에 대해서 고려할 필요가 없습니다. 그렇기 때문에 클라이언트가 트랜잭션 도중 다운이 되어도 서버에서는 이를 처리할 필요가 없게 됩니다. 하지만 이 방법은 요청마다 추가 정보를 포함해야 하기 때문에, 요청시에 항상 해석해야하는 단점이 있습니다.
  • Request-Response (또는 Request-Reply)  : Request-Response는 request-reply라고도 불리우고 있는데, 이 방법은 말 그대로 한 컴퓨터에서 어떤 데이터를 요청을 보내면, 다른 컴퓨터에서는 그 요청에 대한 응답을 보내는 방식을 의미합니다. 웹페이지야 말로 request-response의 예라고 할 수 있습니다.

Http의 Request Structure

 Division

Example 

 Request Line
 <request_method><URL><HTTP_Ver>

 GET /index.html HTTP/1.1

 Request Header
 (General | Request | Entity Header)*
 <header_name>:<header_value><CR><LF>

 Host:www.example.com:80
 User-Agent:Mozilla/5.0
 Accept:text/html
 Accept-Language:en-us
 Accept-Encoding:gzip, delate
 Connection:keep-alive

 An Empty line
 <CR><LF>

 <carriage return>

 Optional Message Body

 POST Data


Request Methods

 Request Method

 Description

 GET

 지정된 URL의 정보를 가져온다.

 POST

 지정된 URL로 Body에 포함된 정보를 제출한다.

 PUT

 지정된 URL에 저장될 정보를 전달한다.

 DELETE

 지정된 Resource를 삭제한다.


HTTP Response Structure

 Division

Example 

 Response line
 <HTTP ver><status code><status-message>

 HTTP/1.1 200OK

 Response Header
 (General|Response|Entity Header)*
 <header_name>:<header_value><CR><LF> 

 Host:www.example.com:80
 User-Agent:Mozilla/5.0
 Accept:text/html
 Accept-Language:en-us
 Accept-Encoding:gzip, delateConnection:keep-alive

 An Empty line

 <CR><LF>, carriage return

 Message Body

 HTML Contents


Response Status Code

Range 

Status Code 

 Description

 1xx
 Informational

 

 

 2xx
 Success

 200

 OK

 3xx
 Redirection 

 301 

 Moved Permanently 

 302 

 Found 

 304 

 Not Modified 

 4xx
 Client Error 

 400 

 Bad Request 

 401 

 Unauthorized 

 403 

 Forbidden 

 404 

 Not Found 

 5xx
 Server Error

 500 

 Internal Server Error 

 503

 Service Unavailable 


Multipurpose Internet Media Extension Type
Internet Media Type
Content-type

syntax

<type>/<subtype>;[<parameter-name>=<parameter-value>]

example

Content-Type : text/html;charset=UTF-8


반응형