Http相关知识总结

http 常见状态码

HTTP 状态码是在 HTTP 协议中服务器返回给客户端的响应状态标识,常见的 HTTP 状态码包括:

1xx:信息性状态码,表示服务器已经接收到请求,正在处理。

  • 100 Continue:客户端继续发送请求。这个状态码的作用是在客户端收到服务端初步的“请求已经被接收”的提示后,决定是否继续发送请求内容。
  • 101 Switching Protocols:服务器转换协议,客户端需要切换到新协议进行通信。

2xx:成功状态码,表示服务器已经成功处理了请求。

  • 200 OK:请求已成功被服务器接收、理解、并接受。
  • 201 Created:请求已经被实现,资源已经被创建。
  • 204 No Content:服务器成功处理了请求,但是没有返回任何内容。

3xx:重定向状态码,表示客户端需要采取进一步的操作才能完成请求。

  • 301 Moved Permanently:永久性重定向,请求的资源已经被分配了新的 URI,以后应使用资源现在所指的 URI。
  • 302 Found:临时性重定向,请求的资源已经被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。
  • 304 Not Modified:客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。

4xx:客户端错误状态码,表示客户端发送的请求有误。

  • 400 Bad Request:服务器无法理解请求格式,客户端不应当尝试再次使用相同的内容发起请求。
  • 401 Unauthorized:表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。
  • 403 Forbidden:服务器已经理解请求,但是拒绝执行它(权限不足)。

5xx:服务器错误状态码,表示服务器在处理请求时发生了错误。

  • 500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
  • 503 Service Unavailable:服务器暂时处于超负载或正在停机维护,无法处理请求。

304 表示什么和 302 有什么区别

HTTP 304 和 HTTP 302 都是 HTTP 协议中的状态码,表示不同的含义。

HTTP 304 状态码表示“未修改”,也称为“缓存未过期”。当一个客户端(如浏览器)向服务器发送请求时,在该请求中包含了一个“ETag”或“Last-Modified”的标识符。服务器会比较该标识符与资源在服务器上的版本是否匹配。如果匹配,则服务器返回 HTTP 304 状态码,告诉客户端使用其本地缓存的版本。这样可以节省网络带宽和服务器资源,并提高访问速度。

HTTP 302 状态码表示“临时重定向”。服务器返回该状态码时,表示被请求的资源已经被暂时移动到了另一个 URL。这通常用于网站重构、更改目录结构、处理 HTTP 请求的负载均衡等情况下。客户端会自动跳转到新的 URL 地址,并重新发送请求。

因此,HTTP 304 表明服务器没有更新资源,客户端可以使用本地缓存,而 HTTP 302 表明被请求的资源已经移动到了新的位置。

http缓存策略

HTTP缓存策略是指Web浏览器和服务器之间的数据缓存方式,以及在何种情况下使用缓存数据或重新请求数据。

常见的HTTP缓存策略包括:

  1. 强制缓存:浏览器首先检查响应的“Cache-Control”和“Expires”头信息来判断该资源是否已经被缓存过。如果可以使用缓存,则直接从缓存中获取资源,而不需要将请求发送到服务器。

  2. 协商缓存:如果资源未被强制缓存,则浏览器将向服务器发出请求,并在请求头中包含“if-none-match”和“if-modified-since”字段。如果服务器返回的响应状态码为304(Not Modified),则表示资源没有更新,浏览器会使用本地缓存的版本。

  3. 离线缓存:一些Web应用程序支持离线访问,即使用户没有连接到互联网也可以使用。这通过将页面及其相关资源(如图像、样式表和脚本)保存在浏览器的缓存中实现。

  4. 应用程序缓存:HTML5引入了应用程序缓存,它允许Web应用程序将所有必需的文件缓存在客户端,使得应用程序可以脱机使用。应用程序缓存由清单文件控制,其中列出了要缓存的文件列表。

HTTP缓存策略可以减少网络流量,加快页面加载速度,并提高网站性能。但是,如果缓存过于依赖,则可能会导致重要的更新无法及时传播给用户,从而降低用户体验。因此,Web开发人员需要仔细考虑缓存策略,并根据具体情况进行适当的配置。

http请求中connection为keep-alive表示什么

在HTTP协议中,当一个客户端与服务器建立连接并发送请求时,服务器会返回一个响应并关闭连接。如果客户端需要再次请求资源,需要重新建立连接,这样会浪费很多资源。

为了解决这个问题,HTTP/1.1 引入了 Keep-Alive 功能,使得客户端可以在同一个 TCP 连接上发送多个请求,并在服务器端进行处理后返回响应。这样可以避免多次建立和关闭连接的开销,从而提高性能。

当一个 HTTP 请求中包含 “Connection: keep-alive” 头部时,表示客户端希望保持该连接处于活动状态,以便在后续的请求中重复使用。而在服务器响应中包含 “Connection: keep-alive” 头部时,则表示服务器同意保持连接处于活动状态。

需要注意的是,即使使用了 Keep-Alive 功能,TCP 连接仍然可能因为各种原因(如超时、网络故障等)而被关闭。因此,客户端在发送新的请求前需要检查连接是否保持活动状态。

你可能感兴趣的:(前端,http,服务器,网络)