HTTP协议笔记

HTTP协议

HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同,用于客户端和服务器之间的通信。其中请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。

具体例子如下:

HTTP协议的特点:简单,无状态协议,HTTP 协议自身不对请求和响应之间的通信状态进行保存。

HTTP 方法

HTTP报文

请求报文:请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的。

响应报文:响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。

HTTP状态码

HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。

状态码的类别

总共有60多种,常用的也就如下14种状态码。

2xx成功

  1. 200 OK:表示从客户端发来的请求在服务器端被正常处理了。
  2. 204 No Content:该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。
  3. 206 Partial Content:表示客户端进行了范围请求,而服务器成功执行了这部分的GET 请求。

3XX 重定向

  1. 301 Moved Permanently:永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
  2. 302 Found:临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。
  3. 303 See Other:该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源。
  4. 304 Not Modified:该状态码表示客户端发送附带条件的请求 时,服务器端允许请求访问资源,但未满足条件的情况。304 状态码返回时,不包含任何响应的主体部分。
  5. 307 Temporary Redirect:临时重定向。该状态码与 302 Found 有着相同的含义。

4XX 客户端错误

  1. 400 Bad Request:该状态码表示请求报文中存在语法错误。
  2. 401 Unauthorized:该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。
  3. 403 Forbidden:该状态码表明对请求资源的访问被服务器拒绝了。
  4. 404 Not Found:该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

5XX 服务器错误

  1. 500 Internal Server Error:该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web应用存在的 bug 或某些临时的故障。
  2. 503 Service Unavailable:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
原文地址:https://www.cnblogs.com/markniefeng/p/10561867.html