• HTTP请求大全


    1xx - 信息提示
    这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。
    100 - 继续
    101 - 切换协议


    2xx - 成功
    这类状态代码表明服务器成功地接受了客户端请求。
    200 - 确定。客户端请求已成功
    201 - 已创建
    202 - 已接受
    203 - 非权威性信息
    204 - 无内容
    205 - 重置内容
    206 - 部分内容


    3xx - 重定向
    客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 
    302 - 对象已移动。 
    304 - 未修改。 
    307 - 临时重定向。


    4xx - 客户端错误
    发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。
    400 - 错误的请求
    401 - 访问被拒绝
     · 401.1 - 登录失败。 
     · 401.2 - 服务器配置导致登录失败。 
     · 401.3 - 由于 ACL 对资源的限制而未获得授权。 
     · 401.4 - 筛选器授权失败。
     · 401.5 - ISAPI/CGI 应用程序授权失败。 
     · 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。 
    403 - 禁止访问
     · 403.1 - 执行访问被禁止。 
     · 403.2 - 读访问被禁止。 
     · 403.3 - 写访问被禁止。 
     · 403.4 - 要求 SSL。 
     · 403.5 - 要求 SSL 128。 
     · 403.6 - IP 地址被拒绝。 
     · 403.7 - 要求客户端证书。 
     · 403.8 - 站点访问被拒绝。 
     · 403.9 - 用户数过多。 
     · 403.10 - 配置无效。 
     · 403.11 - 密码更改。 
     · 403.12 - 拒绝访问映射表。 
     · 403.13 - 客户端证书被吊销。 
     · 403.14 - 拒绝目录列表。 
     · 403.15 - 超出客户端访问许可。 
     · 403.16 - 客户端证书不受信任或无效。 
     · 403.17 - 客户端证书已过期或尚未生效。 
     · 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。 
     · 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。 
     · 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
    404 - 没有找到文件或目录
     · 404.1 - 无法在所请求的端口上访问 Web 站点。 
     · 404.2 - Web 服务扩展锁定策略阻止本请求。 
     · 404.3 - MIME 映射策略阻止本请求。
    405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 
    406 - 客户端浏览器不接受所请求页面的 MIME 类型
    407 - 要求进行代理身份验证
    412 - 前提条件失败
    413 – 请求实体太大
    414 - 请求 URI 太长
    415 – 不支持的媒体类型
    416 – 所请求的范围无法满足
    417 – 执行失败
    423 – 锁定的错误


    5xx - 服务器端错误
    服务器由于遇到错误而不能完成该请求。
    500 - 内部服务器错误
     · 500.12 - 应用程序正忙于在 Web 服务器上重新启动。 
     · 500.13 - Web 服务器太忙。 
     · 500.15 - 不允许直接请求 Global.asa。 
     · 500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。 
     · 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。 
     · 500.100 - 内部 ASP 错误。 
    501 - 页眉值指定了未实现的配置
    502 - Web 服务器用作网关或代理服务器时收到了无效响应。502.1 - CGI 应用程序超时
    502.2 - CGI 应用程序出错。application
    503 - 服务不可用。这个错误代码为 IIS 6.0 所专用
    504 - 网关超时
    505 - HTTP 版本不受支持

     

    HTTP 304 错误介绍

    表示请求的网页(文件)与上次对比没有更新。

    意思是蜘蛛来到你的网站,你网站没有更新内容,并且与上次一样,就会返回304代码。如果每次蜘蛛来你的网站都有新的内容出现,就会反回200代码。因为304代码是记录网站内容是否有更新,在24小时内没有更新,那么快照就会停止。同样,如果返回的304太多,表示网站没有更新,蜘蛛也就不会经常光顾, 影响收录。

    把蜘蛛来的时候给记录下来,算出蜘蛛每隔多久来一次网站,然后就分隔多久更新一下文章,更新文章时要原创+转载。让蜘蛛每次来都能够有新的内容,而不是无功而返。这样就会产生很多200代码。 

    如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

    因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。

    304不是错误。是请求一下图片,如果图片在上次访问后没有更新过,就不用下载了,返回304,叫浏览器直接用cache里的,这个很正常的。可以打开火狐firebug使用"网络"功能查看加载一个页面时所有请求文件的状态,再F5看一下,会看到很多是304,表示直接从浏览器缓存中读取的。

  • 相关阅读:
    刷链表的题都不要用Python
    [踩坑] @RequestBody注解转换modal报400错误问题排查与解决
    netty学习笔记二——ByteBuf类原理
    netty学习笔记一:TCP粘包拆包
    OkHttp3出现java.io.IOException: Hostname was not verified解决方案
    nginx学习笔记(一) 用nginx实现本地https请求转http请求
    zookeeper启动失败排查
    spring boot升级到2.0.0.M7后报错ConverterNotFoundException for java.time.Duration的解决方案
    JpaRepository QueryByExample方法使用详解
    JavaScript面向对象编程
  • 原文地址:https://www.cnblogs.com/yu2000/p/4022296.html
Copyright © 2020-2023  润新知