关于http的一些了解

7/16/2024 Http

HTTP是用于在Web浏览器和Web服务器之间传输数据的基础协议

# 1. 基本概念

协议:HTTP是一种基于请求-响应模型的无状态协议。客户端(如浏览器)发送请求到服务器,服务器处理请求并返回响应。 无状态:每个HTTP请求都是独立的,不保留之前请求的状态。为了维持状态,需要使用Cookie、Session等机制。

# 2. HTTP 方法

GET:请求资源。请求参数会被附加在URL之后。 POST:向服务器提交数据。请求参数会放在请求体中。 PUT:更新资源。通常用于更新已存在的资源。 DELETE:删除资源。 HEAD:类似GET请求,但不返回响应体。 OPTIONS:请求可用的通信选项。 PATCH:部分更新资源。

# 3. HTTP 状态码

  • 1xx(信息性状态码):请求已被接收,继续处理。
  • 2xx(成功状态码):请求成功。例如:
  • 200 OK:请求成功。
  • 201 Created:资源成功创建。
  • 3xx(重定向状态码):请求需要进一步操作以完成。例如:
  • 301 Moved Permanently:永久重定向。
  • 302 Found:临时重定向。
  • 4xx(客户端错误状态码):请求包含错误。例如:
  • 400 Bad Request:请求无效。
  • 401 Unauthorized:需要身份验证。
  • 404 Not Found:请求的资源不存在。
  • 5xx(服务器错误状态码):服务器在处理请求时发生了错误。例如:
  • 500 Internal Server Error:服务器内部错误。
  • 502 Bad Gateway:无效响应。
  • 503 Service Unavailable:服务器不可用。

# 4. HTTP 报文结构

请求报文: 请求行:包括请求方法、请求URI和HTTP版本。 请求头部:提供客户端信息、请求参数、身份验证等。 空行:用于分隔头部和消息体。 消息体:包含实际需要传输的数据,通常在POST请求中使用。 响应报文: 状态行:包括HTTP版本、状态码和状态描述。 响应头部:提供服务器信息、响应参数等。 空行:用于分隔头部和消息体。 消息体:包含实际返回的数据。

# 5. HTTP 头部字段

通用头部:如Date、Connection。 请求头部:如Host、User-Agent、Accept。 响应头部:如Server、Set-Cookie、Content-Type。 实体头部:如Content-Length、Content-Encoding。

# 6. HTTPS

HTTPS:HTTP over SSL/TLS,用于加密传输数据,确保数据传输的安全性。它通过SSL/TLS协议在HTTP上增加了数据加密层。 优点:数据加密、防止数据篡改和伪造、认证服务器身份。

# 7. 持久连接

HTTP/1.0:默认使用短连接,每次请求/响应都会建立和断开连接。 HTTP/1.1:默认使用持久连接(Keep-Alive),同一TCP连接可以发送多个请求和响应,减少连接建立和断开带来的开销。

# 8. HTTP/2

多路复用:同一个连接中可以发送多个请求和响应,不必按顺序处理。 头部压缩:减少头部大小,提高传输效率。 服务器推送:服务器可以主动向客户端推送资源。

最后更新于: 2024年8月22日星期四晚上8点04分