Html 浏览器如何确定接受标头?

Html 浏览器如何确定接受标头?,html,http,web,Html,Http,Web,因此,我在本地有一个网页: 示例“Hello,World”应用程序 示例“Hello,World”应用程序 这是一个示例应用程序的主页,用于说明 利用这些原则组织web应用程序的源目录 在应用程序开发人员指南中概述。 为了证明它们有效,您可以执行以下任一链接: 到。 到。 当我跟踪我的HTTP请求和响应时,我将看到: GET/sample/HTTP/1.1 主机:本地主机:8080 接受:text/html、application/xhtml+xml、application/xml;q=

因此,我在本地有一个网页:


示例“Hello,World”应用程序
示例“Hello,World”应用程序
这是一个示例应用程序的主页,用于说明
利用这些原则组织web应用程序的源目录
在应用程序开发人员指南中概述。
为了证明它们有效,您可以执行以下任一链接:
  • 到。
  • 到。
当我跟踪我的HTTP请求和响应时,我将看到:

GET/sample/HTTP/1.1
主机:本地主机:8080
接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,*/*;q=0.8
接受编码:gzip、deflate、lzma、sdch
接受语言:tr
用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/39.0.2171.65 Safari/537.36 OPR/26.0.1656.24
HTTP/1.1200ok
接受范围:字节
内容长度:636
内容类型:text/html
日期:2014年11月28日星期五19:48:47 GMT
ETag:W/“636-1185801988000”
最后修改:2007年7月30日星期一13:26:28 GMT
服务器:ApacheCoote/1.1
对图像进行第二请求:

GET/sample/images/tomcat.gif HTTP/1.1
主机:本地主机:8080
接受:image/webp,*/*;q=0.8
接受编码:gzip、deflate、lzma、sdch
接受语言:tr
推荐人:http://localhost:8080/sample/
用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/39.0.2171.65 Safari/537.36 OPR/26.0.1656.24
HTTP/1.1200ok
接受范围:字节
内容长度:1441
内容类型:图像/gif
日期:2014年11月28日星期五19:54:55 GMT
ETag:W/“1441-1185801988000”
最后修改:2007年7月30日星期一13:26:28 GMT
服务器:ApacheCoote/1.1
为什么浏览器发送
Accept:image/webp,*/*;q=0.8

当我单击图像本身并在“新建”选项卡中打开它时,请求将按以下方式发送:

GET/sample/images/tomcat.gif HTTP/1.1
主机:本地主机:8080
接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,*/*;q=0.8
接受编码:gzip、deflate、lzma、sdch
接受语言:tr
用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/39.0.2171.65 Safari/537.36 OPR/26.0.1656.24
HTTP/1.1200ok
接受范围:字节
内容长度:1441
内容类型:图像/gif
日期:2014年11月28日星期五19:55:53 GMT
ETag:W/“1441-1185801988000”
最后修改:2007年7月30日星期一13:26:28 GMT
服务器:ApacheCoote/1.1

为什么第二个请求在Accept标头中有更多的值,但在第一种情况下它是不同的?

它本质上是一个格式的历史记录,浏览器制造商希望能够轻松地确定对这些格式的支持

正如格赖斯指出的,这些都包括
*/*
,因此接受任何东西;指定的格式只是首选项

至少在一种情况下:

Accept: image/webp,*/*;q=0.8
这只是促进WebP吸收的一个特例:

作为推广采用WebP的一部分,如果Chrome在Accept标头中更明确地指出它支持的图像格式,这将非常有用。目前它只返回*/*,但这使得服务器很难知道返回WebP图像代替JPEG是否安全


由于Chrome显然也接受PNG、JPEG和GIF格式,因此将WebP作为特例只是为了鼓励对首选格式的特定支持。同样地,
application/xhtml+xml
的特例在鼓励更广泛地使用xhtml时非常有意义。

从技术上讲,它们都接受相同的东西,因为
*/*
接受一切(任何媒体/任何子类型)。它的意思是:接受:text/html,application/xhtml+xml,image/jxr,/它的意思是:接受:text/html,application/xhtml+xml,image/jxr,/,无星