HTTP协议是什么?

HTTP(超文本传输协议)是运行在应用层的网络协议,用于浏览器和网站服务器之间的通信。

它具有以下主要特点:

  1. 基于客户端/服务端模式的请求/响应协议。
  2. 简单快速:客户端向服务器发送请求,服务器返回响应。一个请求对应一个响应,然后通信结束。
  3. 无状态:每次连接只处理一个请求响应,不保留上下文信息。
  4. 支持多种请求方法:GET, POST, PUT, DELETE等。
  5. 可扩展性好:HTTP首部可以扩展以使用HTTP协议发送更多信息。
  6. 基于TCP/IP通信协议:HTTP依赖TCP协议进行可靠传输。

一个典型的HTTP请求/响应过程如下:

  1. 客户端(浏览器)连接到服务器的80端口(HTTP默认端口)。
  2. 客户端向服务器发送HTTP请求,格式为:请求方法 请求URL 请求协议/版本
    例如:GET /index.html HTTP/1.1
  3. 服务器接收请求并返回HTTP响应,格式为:响应协议/版本 状态码 状态码描述
    例如:HTTP/1.1 200 OK
  4. 服务器返回网页内容(HTML)。
  5. 服务器主动断开TCP连接。(HTTP是无状态的)
  6. 客户端接收响应并显示网页。

示例:
请求:

GET /index.html HTTP/1.1 
Host: www.example.com

响应:

HTTP/1.1 200 OK 
Content-Type: text/html

<html>
  <head>
    <title>Hello</title>
  <head>
  <body>
    <h1>Hello World!</h1>
  </body>  
</html>