Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTTP消息的头字段:谁选择它们?_Http_Http Headers - Fatal编程技术网

HTTP消息的头字段:谁选择它们?

HTTP消息的头字段:谁选择它们?,http,http-headers,Http,Http Headers,查看google chrome开发者工具中的网络面板,我可以读取网页中每个文件的HTTP请求和响应消息,特别是,我可以读取起始行和标题及其所有字段 我知道(我希望这是正确的)每个HTTP消息的起始行都有一个特定而严格的结构(当然,请求和响应消息不同),并且起始行中的任何元素都不能错过 与起始行不同,HTTP消息的头包含额外的信息,因此,我猜,头字段是临时的,或者至少不像起始行中的字段那样严格要求 考虑到所有这些,我想知道:谁在HTTP消息中设置头字段?或者,换句话说,如何确定HTTP消息的头字段

查看google chrome开发者工具中的网络面板,我可以读取网页中每个文件的HTTP请求和响应消息,特别是,我可以读取起始行和标题及其所有字段

我知道(我希望这是正确的)每个HTTP消息的起始行都有一个特定而严格的结构(当然,请求和响应消息不同),并且起始行中的任何元素都不能错过

与起始行不同,HTTP消息的头包含额外的信息,因此,我猜,头字段是临时的,或者至少不像起始行中的字段那样严格要求

考虑到所有这些,我想知道:谁在HTTP消息中设置头字段?或者,换句话说,如何确定HTTP消息的头字段

例如,我可以看到网页的HTTP请求消息如下:

GET / HTTP/1.1
Host: www.corriere.it
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2
Cookie: rccsLocalPref=milano%7CMilano%7C015146; rcsLocalPref=milano%7CMilano; _chartbeat2=DVgclLD1BW8iBl8sAi.1422913713367.1430683372200.1111111111111111; rlId=8725ab22-cbfc-45f7-a737-7c788ad27371; __ric=5334%3ASat%20Jun%2006%202015%2014%3A13%3A31%20GMT+0200%20%28ora%20legale%20Europa%20occidentale%29%7C; optimizelyEndUserId=oeu1433680191192r0.8780217287130654; optimizelySegments=%7B%222207780387%22%3A%22gc%22%2C%222230660652%22%3A%22false%22%2C%222231370123%22%3A%22referral%22%7D; optimizelyBuckets=%7B%7D; __gads=ID=bbe86fc4200ddae2:T=1434976116:S=ALNI_MZnWxlEim1DkFzJn-vDIvTxMXSJ0g; fbm_203568503078644=base_domain=.corriere.it; apw_browser=3671792671815076067.; channel=Direct; apw_cache=1438466400.TgwTeVxF.1437740670.0.0.0...EgjHfb6VZ2K4uRK4LT619Zau06UsXnMdig-EXKOVhvw; ReadSpeakerSettings=enlarge=enlargeoff; _ga=GA1.2.1780902850.1422986273; __utma=226919106.1780902850.1422986273.1439110897.1439114180.19; __utmc=226919106; __utmz=226919106.1439114180.19.18.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); s_cm_COR=Googlewww.google.it; gvsC=New; rcsddfglr=1441375682.3.2.m0i10Mw-|z1h7I0wH.3671792671815076067..J3ouwyCkNXBCyau35GWCru0I1mfcA3hRLNURnDWREPs; cpmt_xa=5334,5364; utag_main=v_id:014ed4175b8e000f4d2bb480bdd10606d001706500bd0$_sn:74$_ss:1$_st:1439133960323$_pn:1%3Bexp-session$ses_id:1439132160323%3Bexp-session; testcookie=true; s_cc=true; s_nr=1439132160762-Repeat; SC_LNK_CR=%5B%5BB%5D%5D; s_sq=%5B%5BB%5D%5D; dtLatC=116p80.5p169.5p91.5p76.5p130.5p74p246.5p100p74.5p122.5; dtCookie=E4365758C13B82EE9C1C69A59B6F077E|Corriere|1|_default|1; dtPC=-; NSC_Wjq_Dpssjfsf_Dbdif=ffffffff091a1f8d45525d5f4f58455e445a4a423660; hz_amChecked=1
如何选择这些标题字段?谁/什么选择了他们?(浏览器?当然不是我…)

p、 s:
希望我的问题是清楚的,请原谅我的英语不好

所有互联网网站都托管在上,这些标题由托管网页的http服务器设置。它们用于控制页面的显示、缓存和编码方式

Web浏览器在从服务器请求页面时设置标题。此相互通信协议是上面链接的HTTP协议

下面列出了请求消息的所有可能的头字段:问题是,为什么broser只选择其中的一部分

浏览器不会在每个请求中包含所有可能的请求头,因为:

  • 它们不适用于当前请求或
  • 默认值是所需的值
例如:

Accept
告诉服务器在响应中只能接受某些数据格式。如果任何类型的数据都是可接受的,则可以忽略它,因为默认值为“一切”

Content Length
描述请求正文的长度。GET请求没有正文,因此没有任何内容可以描述其长度

Cookie
包含服务器(或JavaScript)在以前的请求中设置的Cookie。如果尚未设置cookie,则没有可发送回服务器的cookie


等等。

问题是关于响应头,而不是请求头。OP只展示了一个请求的示例,将他的知识链接到HTTP协议就是答案。然后答案仍然不完整,因为HTTP服务器没有设置请求头。问题是关于请求头和响应头。无论如何,我可以理解,对于响应头,HTTP服务器可能负责头字段,但是请求头及其字段呢?浏览器如何选择某些字段而忽略其他字段?是的,我已经更新了答案-浏览器在从服务器请求网页时设置请求HTTP标头。我建议您开始阅读HTTP协议的一些文档。字段值的确定方式取决于(至少)您所谈论的字段。通常,几个不同的人/软件可能会对其产生影响。你的问题似乎不太适合Stackoverflow:。@arkascha谢谢你的建议,我正在这么做,同时我很乐意找到我问题的答案。我不明白。您是否想知道HTTP请求头是否可以由浏览器以外的其他东西决定?也许你的电脑里有个侏儒?@马可:这很复杂。有些东西它不在乎,也不需要。关于为什么某个特定浏览器会在某一天为某台特定计算机上的某个特定服务器的某个特定请求选择某些特定的标题的完整讨论可能会让人大吃一惊。