工作原理

本质

一个基于 TCP/IP 通信协议传递数据(图片,文本,等等)的协议

特点

  • 无连接

    • 完成,单次请求和响应就会断开-
  • 媒体独立

    • 只约定文件的打开类型 MIME-type, 对方怎么处理不管
  • 无状态

    • 对之前处理的事物,没有记忆,因此如果需要之前发送过的信息,需要重发
    • 副作用

      • 导致数据发送量大,如果需要之前的状态信息
    • 优点

      • 如果不需要之前的信息,应答很快

CGI

Common Gateway Interface

作用:

  • 一种在 http 服务器和计算机程序之间交互的中间介质程序。
  • 相当于一个 http server 和程序间的接口层

MIME Type

  • 由国际组织规定
  • 标准形式

    • Content-Type: text/HTML
  • 个人软件规定的形式

    • Content-Type: application/x-…

请求 Request

https://www.runoob.com/http/http-messages.html

发出者

客户端

组成

三部分:请求行,请求头部,请求数据

  1. 请求行

    • 格式

      请求方法 url http协议版本\r\n
      
  2. 请求头部

    • 请求设定的参数和值
    • 格式

      字段:Value\r\n
      字段:Value\r\n
      ...
      \r\n
      
  3. 请求数据

    • 没有格式要求
  4. eg:

    1
    2
    3
    4
    
    GET /hello.txt HTTP/1.1             // * 请求行
    User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3  // * 请求头部, dict 形式
    Host: www.example.com
    Accept-Language: en, mi

响应 Response

发出者

服务器

组成

四部分组成:状态行,消息报头,空行,响应正文

HTTP/1.1 200 OK                              // * 状态行
DATE: Sat, 31, Dec 2005 23:59:49 GMT         // * 消息报头,dict 形式
Content-Type: text/html; charset=ISO-8859-1
Content-Length: 122
 					// * 空行
<html>                                       // * 响应正文
<head>
</head>
<body>
<p>Hello, this is a respone body.</p>
</body>