什么HTTP状态编码应该程序员会关心?
-
18-09-2019 - |
题
所以,如果你看看 名单HTTP状态码, 有可能是一些他们,将会是有用的,同时节目。服务器可能会处理一些事情,就像的协议,但很多这些代码可用于说的浏览器的实际状况页。
因此,我的问题是,这些状况代码,我们应该关心?这应该我们以检查发送,以及哪些最有可能从来没有被用在经常的应用程序。
如果你是好奇,这是在范围PHP编程,但它很可能适用于其他语言一样好。
解决方案
许多这些是本质上有用与其他式API使用情况。例如:
200(确定): 你要求的资源。在这里啊!
201(创建): 你让我一个新的资源。我没有!在这里你可以去问我这接下来时间。
202(接受): 你问我做的东西,但是它需要一段时间,所以不要再等待了。在这里你可以去检查的状态。
300(多选题) 你要的东西,但是你不够具体。哪一个的这些你有没有意思?
301(永久移动): 你要的东西,但它在其他地方。这里是哪里去了。
302(发): 你要的东西,但它在别处的时刻。在这里它是。
304(未经修改): 你问为什么在此之前,但它并没有改变,因为你最后一次问我。
400(错误的请求): 什么是错了什么你问我要做。修复你说的话再试一次。
401(未经授权的): 我需要你确定自己之前,我可以完成这一请求。[注:这是一个不幸的是名为标题。它应该是标题 未经验证;403是更多喜欢 未经授权的.]
403(禁止): 你要的东西你们是不允许的。
404(未找到): 你要的资源,但没有一个符合你的描述。
500(服务器错误): 事了,所以我不能给你什么你要现在。遗憾。
501(未实施): 我不支持这样的请求的权利。
503(服务不可用的): 我不能够请求作出回应的权利。
其他提示
更准确地说,这些只是HTTP状态编码,不HTTP头。头传达了很多东西,并发送的客户和服务器,并且超出范围的这种答案。
一个HTTP头,即在第一个服务器发送给客户,看起来是这样的:
HTTP/1.x 200 OK
或者:
HTTP/1.x 404 Not Found
显示的数字后协议的标识符 HTTP/1.x
为什么所谓的地位代码对应的地位信息发送之后。这里有状态编码,我已经在使用我的PHP编程:
200 OK
是迄今为止的最为常见。它意味着一切都运行良好,你是应有的内容。404 Not Found
是自动发送的服务器在某些条件下,特别是当请求导致执行的脚本无法找到服务器上。有时候,特别是如果你写作框架处理Uri在一个特殊的方式,你会想要手动设置一个404状态码。例如,如果你有一个中央执行的脚本index.php
通过同时你路线的所有请求使用。就或Apache设置,Apache会几乎从来没有返回404在其自己的协议,因为,毕竟,这已经找到了index.php
.但显然,仍然会有一些Uri要沟通不会导致任何地方,你会想送你自己的404状态头。301 Moved Permanently
和302 Found
(更常被引用作为'临时移动').这两个指示浏览器寻找一个Location
头和重新定向的用户指定的URL。最PHP框架拥有自己的职能HTTP重定向,其中也处理头。Native PHP重定向header('Location: http://www.google.com');
自动改变HTTP状态302.我从来没有真正理解的深度之间的差302和301,但我读301更好的搜索引擎优化,所以,我尝试始终使用301.或许别人可以启发在什么准确的差别。有一件事要小心的是避免把一个301/302状态和位置信头一页上这是旨在接收员额的数据。我已经有一些麻烦,它在过去。304 Not Modified
通常是自动发送取决于你的Apache设置。大多数浏览器在正常条件包括的日期/时间对其所请求的项目是缓存在用户的计算机。Etag和其他的头被用于这一目的。如果Apache法官的服务器的相应文件没有改变自那时以来,Apache往往会送304没有内容,它只是告诉用户缓存的版本。401 Unauthorized
发送时的用户是试图访问受限的部分在网站上。还有一些老HTML的功能和服务器技术,支持本地用户名/密码提示,发送401状态编码当提示是取消或没有得到授权。大多数人民的这些天来编写他们自己的PHP实现中对用户认证和版权管理,因此Apache不经常送401s在其自己的协议。你可以发送状态的手动表明,更多的权利,需要访问的网页。400 Bad Request
发送通过阿帕奇如果收到请求,它不能理解。你通常不必担心发送。403 Forbidden
使用的一些人,当用户试图访问一个区域,他们将不能够访问,甚至有适当的认证可能是由于地理、知识产权、或禁止的限制。我不要用它自己,我只是用401和404填写。5xx
.500系列中的代码,你真的不看到作为一个开发商。这意味着你的代码或服务器做了坏事如果你有一个服务器或负载平衡系统的足够口径和你没有代码中的错误,你将永远见不到500系列。
那么,那些是状态码,而不是头信息,但(虽然5xx序列不太可能)它们中的任何可能是有用的。
我把它你谈论使用标头或者服务的文件或提供RESTful Web服务?
您会是状态代码之后,而不是头即可。我已经常用的是:
200 OK
301 Moved Permanently
302 Found (temporary redirect)
400 Bad Request
403 Forbidden
404 Not found
500 Internal Server Error
当然,对于web服务的RESTful可以改变文本是更具描述性的,以及在主体中提供说明。
然后有:
418 I'm a teapot
快去通过那个名单 (的状态编码), ,这里是那些我经常使用 (我做PHP网络的发展作为我的工作) :
200 OK
:几乎都是发送的Apache301 Moved Permanently
:通常送我的(或者通过阿帕奇,当使用的重写规则)302 Found
:通常送我的(或者通过阿帕奇,当使用的重写规则)304 Not Modified
:通常发送的通过阿帕奇(或反向代理在它前面的)401 Unauthorized
:通常发送的Apache403 Forbidden
:通常发送的Apache404 Not Found
:送两者都通过阿帕奇和我--根据情况410 Gone
:通常送我500 Internal Server Error
:送两者都通过阿帕奇和我这是一个我一般使用时,有一个"技术性"错误--即使它不应该发生^^
和这里的那些我可以用 (尤其是如果这样做的休息) :
那些我已经用最多的是:
- 301-搬到永久使用这个如果资源是永久性地搬迁到新址。
- 302-临时移动使用的这个用于重新定向的时候,你不能有永久重定向。
- 404-未找到。你的服务器应构成这种无效的网址。你应该监测这些在你的记录--太多的404是一个糟糕的推动。
- 500-内部服务器的错误。你的服务器应当配置适当发送这些时有错误。你应该监测5xx中的错误记录。