본문 바로가기
컴퓨터공학/네트워크

HTTP 프로토콜

by 무에서 2018. 2. 28.
반응형

HTTP

 

HTTP (Hypertext Transfer Protocol) 프로토콜은 RFC7230에 규정되어 있다. HTTP 프로토콜은 TCP 위에 있는 텍스트 프로토콜로 Request-Response로 동작한다.

 

Request의 예는 다음과 같다. 각 문장의 끝은 \r\n으로 끝난다.

 



GET /html HTTP/1.1\r\n
Host: httpbin.org\r\n
Connection: keep-alive\r\n
Cache-Control: max-age=0\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7\r\n
Cookie: _gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1\r\n
 \r\n

 

Response의 예는 다음과 같다. Response는 Message Header와 Message Body로 구성되고 Header와 Body 사이에는 \r\n로 구분된다. 

 



HTTP/1.1 200 OK\r\n
Connection: keep-alive\r\n
Server: meinheld/0.6.1\r\n
Date: Tue, 27 Feb 2018 14:21:01 GMT\r\n
Content-Type: text/html; charset=utf-8\r\n
Content-Length: 3741\r\n
Access-Control-Allow-Origin: *\r\n
Access-Control-Allow-Credentials: true\r\n
X-Powered-By: Flask\r\n
X-Processed-Time: 0\r\n
Via: 1.1 vegur\r\n
\r\n
<!DOCTYPE html>\n
<html>\n
  <head>\n
  </head>\n
  <body>\n
    <h1>Herman Melville - Moby-Dick</h1>\n
\n
    <div>\n
      <p>\n
Homepage\n
      </p>\n
    </div>\n
  </body>\n
</html>
 

 

Message Header의 각 문장의 끝은 \r\n으로 끝나고 Message Body 문장의 끝은 \n로 끝난다. Message Body는 HTML로 구성된다.

 

반응형

댓글