分享

了解HTTP Headers的方方面面(3)

 流曲频阳 2017-04-27

 


http响应结构


当浏览器发送了HTTP请求之后,服务器就会通过一个HTTP response来响应这个请求。如果不关心内容,那么这个请求看起来会是这样的:



第一个有价值的信息就是协议。目前服务器都会使用 HTTP/1.x 或者 HTTP/1.1。


接下来一个简短的信息代表状态。代码200意味着我们的请求已经发送成功了,服务器将会返回给我们所请求的文档,在头部信息之后。


我们都见过“404”页面。当我向服务器请求一个不存在的路径时,服务器就用用404来代替200响应我们。


余下的响应内容和HTTP请求相似。这些内容是关于服务器软件的,页面/文件何时被修改过,mime type 等等…


同样,这些头部信息也是可选的。


HTTP状态码



  • 200 用来表示请求成功.

  • 300 来表示重定向.

  • 400 用来表示请求出现问题.

  • 500 用来表示服务器出现问题.


200 成功 (OK)


前文已经提到,200是用来表示请求成功的。


206 部分内容 (Partial Content)


如果一个应用只请求某范围之内的文件,那么就会返回206.


这通常被用来进行下载管理,断点续传或者文件分块下载。


404 没有找到 (Not Found)



很容易理解


401 未经授权 (Unauthorized)


受密码保护的页面会返回这个状态。如果你没有输入正确的密码,那么你就会在浏览器中看到如下的信息:



注意这只是受密码保护页面,请求输入密码的弹出框是下面这个样子的:



403 被禁止(Forbidden)


如果你没有权限访问某个页面,那么就会返回403状态。这种情况通常会发生在你试图打开一个没有index页面的文件夹。如果服务器设置不允许查看目录内容,那么你就会看到403错误。


其它一些一些方式也会发送权限限制,例如你可以通过IP地址进行阻止,这需要一些htaccess的协助。


order allow,deny

deny from 192.168.44.201

deny from 224.39.163.12

deny from 172.16.7.92

allow from all


302(或307)临时移动(Moved Temporarily) 和 301 永久移动(Moved Permanently)


这两个状态会出现在浏览器重定向时。例如,你使用了类似 bit.ly 的网址缩短服务。这也是它们如何获知谁点击了他们链接的方法。


302和301对于浏览器来说是非常相似的,但对于搜索引擎爬虫就有一些差别。打个比方,如果你的网站正在维护,那么你就会将客户端浏览器用302 重定向到另外一个地址。搜索引擎爬虫就会在将来重新索引你的页面。但是如果你使用了301重定向,这就等于你告诉了搜索引擎爬虫:你的网站已经永久的移动 到了新的地址。


500 服务器错误(Internal Server Error)



这个代码通常会在页面脚本崩溃时出现。大部分CGI脚本都不会像PHP那样输出错误信息给浏览器。如果出现了致命的错误,它们只会发送一个500的状态码。这时需要查看服务器错误日志来排错。


完整的列表


你可以在这里找到完整的HTTP 状态码说明。



               

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多