HTTP的隐藏功能

Gum*_*mbo 85 http

您认为哪些隐藏的HTTP功能值得一提?

隐藏的功能我的意思是已经成为标准的一部分但广泛相当未知或未使用的功能.

请给每个答案一个功能.

Gre*_*ech 124

它必须是418我是茶壶状态代码,是超文本咖啡壶控制协议(HTTP的扩展)的一部分.每次都让我开怀大笑.

2.3.2 418我是一个茶壶

任何尝试用茶壶冲泡咖啡都会导致错误代码"418我是茶壶".由此产生的实体可能很短而粗壮.

  • 太棒了! (6认同)
  • 来自RFC:"由此产生的实体主体可能很短而粗壮." (4认同)
  • 我实际上已经在脚本中实现了这种状态,因为没有其他状态是合适的. (3认同)
  • 我编写了自己的HTTP服务器,并确保实现这一点. (2认同)

Nat*_*man 48

推荐人拼写错误的事实,并决定应该保留拼写错误.


Mar*_*ijn 42

明显的答案:PUT,DELETE,TRACE,OPTIONS,CONNECT方法

大多数人都知道GET和POST方法,因为这是他们在构建表单时使用的方法.浏览器也经常使用HEAD.其他方法则鲜为人知; 它们主要用于更具体的应用程序.

  • 您可以在各种网站上阅读所有相关信息,例如http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol (2认同)

ras*_*spi 29

有没有人见过402付款

  • @ zildjohn01:这意味着......*戏剧性的停顿*......我们将在未来生活!;) (26认同)
  • 是.在HTTP < - > SMS网关中.如果您的预付信用额用完,您将开始收到402回复. (17认同)
  • @Piskvor:很棒的观察.我还要指出,我拒绝这个未来,这是可怜的软件堆栈. (6认同)
  • "未来已经存在,它只是分布不均匀." (3认同)

Kev*_*son 25

204没有内容

我认为204只是你没有要显示的内容,但规范看起来还有其他行为,用户代理"不会更改其文档视图".

根据HOWTO:配置Apache为AJAX返回HTTP 204(无内容)

FWIW,谷歌实际上做了类似的事情.每次用户点击搜索结果中的链接时,Google都会自行记录点击次数; ping的响应代码是HTTP 204.

另外,204 No Content建议如果你想节省网络流量的每一个字节,这对于"网络错误"或"信标"来说是一种很好的技术.


Pis*_*3.0 17

回应代码410 Gone:

(...)服务器所有者希望删除该资源的远程链接.(......)

网络蜘蛛(最着名的是谷歌)将取消索引(通常在下一次抓取时)一个开始返回410的页面.


Ant*_*nes 16

在动态内容中使用Last_Modified或ETag标头

有时,您拥有的动态内容可能很大且生成成本高,而且可能不会因请求而变化.您可以将Last_Modified或ETag标头添加到生成的响应中.

在昂贵的动态代码的顶部,您可以使用If_Modified_Since或If_None_Match来确定内容请求者是否仍然是当前的.如果它将响应状态更改为"304未修改"并结束请求.

一些服务器端技术正式提供此类功能,但即使在低级ASP-Classic中也可以执行上述操作.

请注意,这与设置Cache-Control,Expires标头不同,它确保客户端始终根据请求提供最新信息.


Bal*_*usC 13

您可以请求恢复(大)HTTP响应(例如文件下载),使用RangeIf-Range请求分别具有指定字节范围和唯一文件标识符或文件修改时间戳的标头.如果服务器分别通过服务器支持字节范围请求,唯一文件标识符和文件修改时间戳的通知,在初始响应上发送了Accept-Ranges: bytes和/ ETagLast-Modified响应头,则可以执行此操作.

初始响应可能看起来像(ETag通常由文件名,大小和最后修改时间戳组成):

Accept-Ranges: bytes
ETag: file.ext_1234_1234567890
Content-Range: bytes 0-1233/1234
Run Code Online (Sandbox Code Playgroud)

当下载中止例如1KB(1024字节)时,客户端可以按如下方式恢复它:

If-Range: file.ext_1234_1234567890
Range: bytes=1024-
Run Code Online (Sandbox Code Playgroud)

哪个应该使用正文中的适当字节返回此响应:

Accept-Ranges: bytes
ETag: file.ext_1234_1234567890
Content-Range: bytes 1024-1233/1234
Run Code Online (Sandbox Code Playgroud)


Bol*_*wyn 12

ReST尝试将HTTP作为接口协议推送到其极限.

它不是一个隐藏的功能,但是通过查看定义明确的ReST API,可以很好地掌握HTTP的工作方式并找到通过简单组合HTTP方法,状态代码和标头来实现的精彩示例.来回


Ebr*_*adi 9

预告片(与标题相反)


syb*_*eon 8

该协议允许您定义自己的自定义字段.如果您不想使用cookie,这些可用于携带其他信息.


Rob*_*ben 6

HTTP 100(继续)状态

客户端可以向请求主体发送请求消息,以确定源服务器是否愿意接受请求.

在某些情况下,如果服务器在不查看正文的情况下拒绝邮件,则客户端发送正文可能不合适或效率极低.

可用于避免来自恶意客户端的流量 ..和/或带宽是宝贵商品的地方.

但是,为了充分利用此功能,HTTP1.1客户端,服务器和代理有一些标准.有关HTTP连接的进一步阅读,请参阅HTTP/1.1 RFC 2616.