所以,如果你看一下List of HTTP Status Codes,可能有一些在编程时很有用。服务器可能会处理一些事情,比如协议,但是很多这些代码在告诉浏览器页面的实际状态时可能很有用。
所以,我的问题是我们应该关注这些状态代码中的哪一个?我们应该检查发送哪些,哪些最有可能永远不会在常规应用程序编程中使用。
如果你很好奇,这是 PHP 编程的范围,但它可能适用于其他语言。
其中许多在 REST 风格的 API 使用中非常有用。例如:
200(OK):您要了一个资源。在这里!
201(已创建):您要求我制作新资源。我做到了!这是您下次可以去问我的地方。
202(已接受):您要求我做一些事情,但是这需要一段时间,所以不要等待,这是您可以去检查状态的地方。
300(多种选择):您要求的东西,但不够具体。您是指其中的哪一个?
301(永久移动):您要求的东西,但现在在其他地方,这就是它的去向。
302(找到):您要了一些东西,但目前在其他地方。在这里。
304(未修改):在此之前您要求了一些东西,但是自从上次您问我以来,它一直没有改变。
400(错误的请求):您要求我做的事情有些不对劲,请修复您所说的内容,然后重试。
401(未经授权):在完成此请求之前,我需要您确定自己的身份。[注意:这是更不幸的命名标头之一,它的标题实际上应该是Unauthenticated;403 更像是Unauthorized。]
403(禁止):您要求的东西是不允许的。
404(未找到):您要求提供资源,但没有与您的描述匹配的资源。
500(服务器错误):出了点问题,所以我现在不能给您您要的东西。对此感到抱歉。
501(未实现):我现在不支持这种请求。
503(服务不可用):我现在无法响应请求。
更准确地说,这些只是 HTTP 状态代码,而不是 HTTP 标头。标头传达了很多东西,并且由客户端和服务器发送,并且超出了此答案的范围。
其中一个 HTTP 头,即服务器发送给客户端的第一个,如下所示:
HTTP/1.x 200 OK
或:
HTTP/1.x 404 Not Found
在协议标识符HTTP/1.x
之后出现的数字是所谓的状态代码,在它之后发送相应的状态消息。
200 OK
是迄今为止最常见的。这意味着一切都很好,你的反应是内容。
404 Not Found
在某些情况下由服务器自动发送,特别是当请求导致无法在服务器上找到正在执行的脚本时。有时,尤其是如果您正在编写以特殊方式处理 URI 的框架,则您将需要手动设置 404 状态代码。例如,如果您有一个中央执行脚本index.php
,则在使用.htaccess 或 Apache 设置后,您仍然会返回所有。
301 Moved Permanently
和302 Found
有一些麻烦在 301 上尝试它。更常见的是引用为 'Moved Temporarily')。这两个指示浏览器查找Location
标题并将用户重定向到那里指定的 URL。大多数 PHP 框架都有自己的 HTTP 重定向函数,它也处理标题。原生 PHP 重定向header('Location: http://www.google.com');
自动将 HTTP 状态 302 更
304 Not Modified
通常会根据您的 Apache 设置自动发送。正常情况下,大多数浏览器都包含在用户计算机上缓存所请求项目的日期 / 时间。ETags 和其他标头用于此目的。如果 Apache 判断服务器的相应文件自那时以来没有更改,Apache 通常会发送一个没有内容的 304,它只是告诉客户端使用缓存的版本。
401 Unauthorized
是在用户尝试访问网站上的受限部分时发送的。有一些旧的 HTML 功能和服务器技术支持本机用户名 / 密码提示,当提示被取消或未授权时,它们会发送 401 状态代码。如今,大多数人都编写自己的 PHP 实现来进行用户身份验证和权限管理,因此 Apache 通常不会自行发送 401。您可以手动发送状态以指示需要更多权限访问页面。
400 Bad Request
是由 Apache 发送的,如果它收到它无法理解的请求,您通常不必担心手动发送它。
当用户试图访问他们无法访问的区域时,某些人使用403 Forbidden
,即使由于地理,IP 或禁止限制而进行了适当的身份验证。我自己不使用它,我只是使用 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
当然,对于 RESTful Web 服务,您可以将文本更改为更具描述性,并在正文中提供描述。
然后是:
418 I'm a teapot
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(9条)