Referrer Policy 是什么?

我们知道,在页面引入图片、JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,

浏览器一般都会给这些请求头加上表示来源的 Referrer 字段。Referrer 在分析用户来源时很有用,有着广泛的使用。

属性介绍:

新的 Referrer Policy 规定了五种 Referrer 策略:No Referrer、No Referrer When Downgrade、Origin Only、Origin When Cross-origin、和 Unsafe URL。

之前就存在的三种策略:never、default 和 always,在新标准里换了个名称。他们的对应关系如下:

策略名称 属性值(新) 属性值(旧)
No Referrer no-referrer never
No Referrer When Downgrade no-referrer-when-downgrade default
Origin Only origin -
Origin When Cross-origin origin-when-crossorigin -
Unsafe URL unsafe-url always
  • No Referrer :
  • 任何情况下都不发送 Referrer 信息;
  • No Referrer When Downgrade :
  • 仅当发生协议降级(如 HTTPS 页面引入 HTTP 资源,从 HTTPS 页面跳到 HTTP 等)时不发送 Referrer 信息。
  • 这个规则是现在大部分浏览器默认所采用的;
  • Origin Only
  •  :发送只包含 host 部分的 Referrer。启用这个规则,无论是否发生协议降级,
  • 无论是本站链接还是站外链接,都会发送 Referrer 信息,但是只包含协议 + host 部分(不包含具体的路径及参数等信息);
  • Origin When Cross-origin 
  • :仅在发生跨域访问时发送只包含 host 的 Referrer,同域下还是完整的。
  • 它与Origin Only的区别是多判断了是否Cross-origin。需要注意的是协议、域名和端口都一致,才会被浏览器认为是同域;
  • Unsafe URL :
  • 无论是否发生协议降级,无论是本站链接还是站外链接,统统都发送 Referrer 信息。正如其名,这是最宽松而最不安全的策略;

使用:

知道了有哪些策略可以用,还需要了解怎么用。这里介绍指定 Referrer Policy 的三种方式:

1.CSP 响应头

CSP(Content Security Policy),是一个跟页面内容安全有关的规范。

在 HTTP 中通过响应头中的Content-Security-Policy字段来告诉浏览器当前页面要使用何种 CSP 策略。我之前写过一篇Content Security Policy 介绍

可以先看看。现在 CSP 还可以通过referrer指令和五种可选的指令值,来指定 Referrer 策略,格式非常简单:

  1. Content-Security-Policy: referrer no-referrer|no-referrer-when-downgrade|origin|origin-when-cross-origin|unsafe-url;

注:根据文档,通过 CSP 头部设置Origin When Cross-origin策略时,指令值应该用origin-when-cross-origin,

这跟前面的表格里的origin-when-crossorigin有差异。实际上经过我的测试,Chrome 42 只支持origin-when-crossorigin,

后续会不会变还不知道,建议大家使用时,自己先测一下。

CSP 的指令和指令值之间以空格分割,多个指令之间用英文分号分割。

2. <meta> 标签

通过<meta>标签也可以指定 Referrer 策略,同样很简单:

  1. <meta name="referrer" content="no-referrer|no-referrer-when-downgrade|origin|origin-when-crossorigin|unsafe-url">

需要注意的是,<meta>只能放在<head>...</head>之间,如果出现的位置不对会被忽略。同样,如果没有给它定义content属性,或者content属性为空,也会被忽略。如果content属性不是合法的取值,浏览器会自动选择no-referrer这种最严格的策略。

3. 标签的 referrer 属性

通过给<a>标签增加referrer属性也可以指定 Referrer 策略,格式如下:

  1. <a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>

这种方式作用的只是这一个链接。并且,<a>标签可用的 Referrer 策略只有三种:不传、只传 host 和都传。

另外,这样针对单个链接设置的策略优先级比 CSP 和<meta>要高。

另外再重复一遍,现阶段的浏览器还保留了对 never、default 和 always 的支持,但是已经不推荐使用了。

可以看到,通过新的 Referrer 策略,网站所有者可以选择更高的安全级别来保证用户隐私不被泄露;

也可以选择更低的安全级别来获得一些便利,相比之前只能由浏览器默认策略一刀切,确实灵活了不少。

Accept

Accept是什么?

Accept代表发送端(客户端)希望接受的数据类型

  1. 1.Accept属于请求头, Content-Type属于实体头。
  2. Http报头分为通用报头,请求报头,响应报头和实体报头。
  3. 请求方的http报头结构:通用报头|请求报头|实体报头
  4. 响应方的http报头结构:通用报头|响应报头|实体报头

比如:Accept:text/xml(application/json); 
代表客户端希望接受的数据类型是xml(json )类型

Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。

比如:Content-Type:text/html(application/json) ;

代表发送端发送的数据格式是html(json)。 
二者合起来,

Accept:text/xml; 
Content-Type:text/html

即代表希望接受的数据类型是xml格式,本次请求发送的数据的数据格式是html。

如果accept指定的类型和response返回的类型不一致,会出现406,not acceptable错误,对应到java spring工程,就是

  1. HttpHeaders headers = new HttpHeaders();
  2.  
  3. headers.add("Accept", MediaType.APPLICATION_JSON_UTF8_VALUE.toString());

如果head头里加了accept,那么@RequestMapping里的produces = "*/*"或produces = "application/json"

Accept-Encoding

Accept-Encoding 是浏览器发给服务器,声明浏览器支持的编码类型的

常见的有

  1. Accept-Encoding: compress, gzip             //支持compress 和gzip类型(压缩)
  2. Accept-Encoding:                     //默认是identity
  3. Accept-Encoding: *                     //支持所有类型
  4. Accept-Encoding: compress;q=0.5, gzip;q=1.0       //按顺序支持 gzip , compress
  5. Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按顺序支持 gzip , identity
  6. 服务器返回的对应的类型编码header content-encoding
  1.  
  1. 服务器处理accept-encoding的规则如下所示
  1.   1. 如果服务器可以返回定义在Accept-Encoding 中的任何一种Encoding类型, 那么处理成功(除非q的值等于0, 等于0代表不可接受)
  1.   2. * 代表任意一种Encoding类型 (除了在Accept-Encoding中显示定义的类型)
  1.   3.如果有多个Encoding同时匹配, 按照q值顺序排列
  1.   4. identity总是可被接受的encoding类型(除非显示的标记这个类型q=0) ,
  2. 如果Accept-Encoding的值是空 那么只有identity是会被接受的类型
  1. 如果Accept-Encoding中的所有类型服务器都没发返回, 那么应该返回406错误给客户端
  1. 如果request中没有Accept-Encoding 那么服务器会假设所有的Encoding都是可以被接受的,
  1. 如果Accept-Encoding中有identity  那么应该优先返回identity (除非有q值的定义,或者你认为另外一种类型是更有意义的)
  1.  
  1. 注意:
  1. 如果服务器不支持identity 并且浏览器没有发送Accept-Encoding,那么服务器应该倾向于使用HTTP1.0中的 "gzip" and "compress" ,
    服务器可能按照客户端类型 发送更适合的encoding类型
  1. 大部分HTTP1.0的客户端无法处理q
  2. Cache-Control

Cache-Control指定了请求和响应遵循的缓存机制。好的缓存机制可以减少对网络带宽的占用,可以提高访问速度,提高用户的体验,还可以减轻服务器的负担。

Cache-Control主要有以下几种类型:

(1) 请求Request:

[1] no-cache  ---- 不要读取缓存中的文件,要求向WEB服务器重新请求

[2] no-store    ---- 请求和响应都禁止被缓存
[2] max-age: ---- 表示当访问此网页后的max-age秒内再次访问不会去服务器请求,其功能与Expires类似,

只是Expires是根据某个特定日期值做比较。一但缓存者自身的时间不准确.则结果可能就是错误的,

而max-age,显然无此问题.。Max-age的优先级也是高于Expires的。
[3] max-stale  ---- 允许读取过期时间必须小于max-stale 值的缓存对象。 
[4] min-fresh ---- 接受其max-age生命期大于其当前时间 跟 min-fresh 值之和的缓存对象

[5] only-if-cached ---- 告知缓存者,我希望内容来自缓存,我并不关心被缓存响应,是否是新鲜的.

[6] no-transform   ---- 告知代理,不要更改媒体类型,比如jpg,被你改成png.

 

(2) 响应Response:

[1] public    ---- 数据内容皆被储存起来,就连有密码保护的网页也储存,安全性很低
[2] private    ---- 数据内容只能被储存到私有的cache,仅对某个用户有效,不能共享
[3] no-cache    ---- 可以缓存,但是只有在跟WEB服务器验证了其有效后,才能返回给客户端

[4] no-store  ---- 请求和响应都禁止被缓存

[4] max-age:   ----- 本响应包含的对象的过期时间
[5] Must-revalidate    ---- 如果缓存过期了,会再次和原来的服务器确定是否为最新数据,而不是和中间的proxy

[6] max-stale  ----  允许读取过期时间必须小于max-stale 值的缓存对象。 

[7] proxy-revalidate  ---- 与Must-revalidate类似,区别在于:proxy-revalidate要排除掉用户代理的缓存的。即其规则并不应用于用户代理的本地缓存上。

[8] s-maxage  ---- 与max-age的唯一区别是,s-maxage仅仅应用于共享缓存.而不应用于用户代理的本地缓存等针对单用户的缓存. 另外,s-maxage的优先级要高于max-age.

[9] no-transform   ---- 告知代理,不要更改媒体类型,比如jpg,被你改成png.

  1. Connection

HTTP持久连接允许在事务处理结束之后将TCP连接保持在打开状态,以便为未来的HTTP请求重用现存的连接。

在事务处理结束之后仍然保持在打开状态的TCP连接被称为持久连接。持久连接会在不同事务之间保持打开状态,直到客户端或服务器决定将其关闭为止。

优点:重用已对目标服务器打开的空闲持久连接,可以避开缓慢的连接建立阶段,更快速地进行数据的传输。


缺点:管理不当可能会积累出大量的空闲连接,耗费本地客户端以及远程服务器上的资源。


非持久连接会在每个事务处理结束之后关闭。

HTTP持久连接实现手段是HTTP首部添加Connection字段
  • Connection: keep-alive , 开启HTTP持久连接,HTTP 1.1默认值
  • Connection: close , 关闭HTTP持久连接,HTTP 1.0默认值
HTTP keep-alive与TCP keep-alive区别
  • HTTP keep-alive参数为了减少TCP连接和断开而提出的一种解决方案,HTTP持久连接即TCP长连接。
  • TCP keep-alive参数主要为探测长连接的存活状况,即TCP保活功能。

本文将对HTTP首部Connction实践,对比keep-alive/close两个值在HTTP和TCP的表现情况。后端使用Spring boot+Java,前端使用HTML+CSS。

HTTP Request首部Connection

如果Client希望HTTP使用持久连接,在Request首部指定Connection: keep-alive,否则指定Connection: close

Origin

HTTP 协议中的 Origin Header 存在于请求中,用于指明当前请求来自于哪个站点。


  1. Pragma

pragma是http/1.1之前版本的历史遗留字段,仅作为与http的向后兼容而定义。


  1. Referer
  1.  

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,

告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

User-Agent

User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

资源可支持的HTTP方法

Content-Type

Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件

  1. 常见的媒体格式类型如下:
  2.  
  3. text/html HTML格式
  4. text/plain :纯文本格式
  5. text/xml XML格式
  6. image/gif gif图片格式
  7. image/jpeg jpg图片格式
  8. image/pngpng图片格式
  9. application开头的媒体格式类型:
  10. application/xhtml+xml XHTML格式
  11. application/xml XML数据格式
  12. application/atom+xml Atom XML聚合格式
  13. application/json JSON数据格式
  14. application/pdfpdf格式
  15. application/msword Word文档格式
  16. application/octet-stream 二进制流数据(如常见的文件下载)
  17. application/x-www-form-urlencoded <form encType=””>中默认的encType
    form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
  18. 另外一种常见的媒体格式是上传文件之时使用的:
  19.  
  20. multipart/form-data 需要在表单中进行文件上传时,就需要使用该格式
  1. 文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type)
  2. .*( 二进制流,不知道下载文件类型) application/octet-stream .tif image/tiff
  3. .001 application/x-001 .301 application/x-301
  4. .323 text/h323 .906 application/x-906
  5. .907 drawing/907 .a11 application/x-a11
  6. .acp audio/x-mei-aac .ai application/postscript
  7. .aif audio/aiff .aifc audio/aiff
  8. .aiff audio/aiff .anv application/x-anv
  9. .asa text/asa .asf video/x-ms-asf
  10. .asp text/asp .asx video/x-ms-asf
  11. .au audio/basic .avi video/avi
  12. .awf application/vnd.adobe.workflow .biz text/xml
  13. .bmp application/x-bmp .bot application/x-bot
  14. .c4t application/x-c4t .c90 application/x-c90
  15. .cal application/x-cals .cat application/vnd.ms-pki.seccat
  16. .cdf application/x-netcdf .cdr application/x-cdr
  17. .cel application/x-cel .cer application/x-x509-ca-cert
  18. .cg4 application/x-g4 .cgm application/x-cgm
  19. .cit application/x-cit .class java/*
  20. .cml text/xml .cmp application/x-cmp
  21. .cmx application/x-cmx .cot application/x-cot
  22. .crl application/pkix-crl .crt application/x-x509-ca-cert
  23. .csi application/x-csi .css text/css
  24. .cut application/x-cut .dbf application/x-dbf
  25. .dbm application/x-dbm .dbx application/x-dbx
  26. .dcd text/xml .dcx application/x-dcx
  27. .der application/x-x509-ca-cert .dgn application/x-dgn
  28. .dib application/x-dib .dll application/x-msdownload
  29. .doc application/msword .dot application/msword
  30. .drw application/x-drw .dtd text/xml
  31. .dwf Model/vnd.dwf .dwf application/x-dwf
  32. .dwg application/x-dwg .dxb application/x-dxb
  33. .dxf application/x-dxf .edn application/vnd.adobe.edn
  34. .emf application/x-emf .eml message/rfc822
  35. .ent text/xml .epi application/x-epi
  36. .eps application/x-ps .eps application/postscript
  37. .etd application/x-ebx .exe application/x-msdownload
  38. .fax image/fax .fdf application/vnd.fdf
  39. .fif application/fractals .fo text/xml
  40. .frm application/x-frm .g4 application/x-g4
  41. .gbr application/x-gbr . application/x-
  42. .gif image/gif .gl2 application/x-gl2
  43. .gp4 application/x-gp4 .hgl application/x-hgl
  44. .hmr application/x-hmr .hpg application/x-hpgl
  45. .hpl application/x-hpl .hqx application/mac-binhex40
  46. .hrf application/x-hrf .hta application/hta
  47. .htc text/x-component .htm text/html
  48. .html text/html .htt text/webviewhtml
  49. .htx text/html .icb application/x-icb
  50. .ico image/x-icon .ico application/x-ico
  51. .iff application/x-iff .ig4 application/x-g4
  52. .igs application/x-igs .iii application/x-iphone
  53. .img application/x-img .ins application/x-internet-signup
  54. .isp application/x-internet-signup .IVF video/x-ivf
  55. .java java/* .jfif image/jpeg
  56. .jpe image/jpeg .jpe application/x-jpe
  57. .jpeg image/jpeg .jpg image/jpeg
  58. .jpg application/x-jpg .js application/x-javascript
  59. .jsp text/html .la1 audio/x-liquid-file
  60. .lar application/x-laplayer-reg .latex application/x-latex
  61. .lavs audio/x-liquid-secure .lbm application/x-lbm
  62. .lmsff audio/x-la-lms .ls application/x-javascript
  63. .ltr application/x-ltr .m1v video/x-mpeg
  64. .m2v video/x-mpeg .m3u audio/mpegurl
  65. .m4e video/mpeg4 .mac application/x-mac
  66. .man application/x-troff-man .math text/xml
  67. .mdb application/msaccess .mdb application/x-mdb
  68. .mfp application/x-shockwave-flash .mht message/rfc822
  69. .mhtml message/rfc822 .mi application/x-mi
  70. .mid audio/mid .midi audio/mid
  71. .mil application/x-mil .mml text/xml
  72. .mnd audio/x-musicnet-download .mns audio/x-musicnet-stream
  73. .mocha application/x-javascript .movie video/x-sgi-movie
  74. .mp1 audio/mp1 .mp2 audio/mp2
  75. .mp2v video/mpeg .mp3 audio/mp3
  76. .mp4 video/mpeg4 .mpa video/x-mpg
  77. .mpd application/vnd.ms-project .mpe video/x-mpeg
  78. .mpeg video/mpg .mpg video/mpg
  79. .mpga audio/rn-mpeg .mpp application/vnd.ms-project
  80. .mps video/x-mpeg .mpt application/vnd.ms-project
  81. .mpv video/mpg .mpv2 video/mpeg
  82. .mpw application/vnd.ms-project .mpx application/vnd.ms-project
  83. .mtx text/xml .mxp application/x-mmxp
  84. .net image/pnetvue .nrf application/x-nrf
  85. .nws message/rfc822 .odc text/x-ms-odc
  86. .out application/x-out .p10 application/pkcs10
  87. .p12 application/x-pkcs12 .p7b application/x-pkcs7-certificates
  88. .p7c application/pkcs7-mime .p7m application/pkcs7-mime
  89. .p7r application/x-pkcs7-certreqresp .p7s application/pkcs7-signature
  90. .pc5 application/x-pc5 .pci application/x-pci
  91. .pcl application/x-pcl .pcx application/x-pcx
  92. .pdf application/pdf .pdf application/pdf
  93. .pdx application/vnd.adobe.pdx .pfx application/x-pkcs12
  94. .pgl application/x-pgl .pic application/x-pic
  95. .pko application/vnd.ms-pki.pko .pl application/x-perl
  96. .plg text/html .pls audio/scpls
  97. .plt application/x-plt .png image/png
  98. .png application/x-png .pot application/vnd.ms-powerpoint
  99. .ppa application/vnd.ms-powerpoint .ppm application/x-ppm
  100. .pps application/vnd.ms-powerpoint .ppt application/vnd.ms-powerpoint
  101. .ppt application/x-ppt .pr application/x-pr
  102. .prf application/pics-rules .prn application/x-prn
  103. .prt application/x-prt .ps application/x-ps
  104. .ps application/postscript .ptn application/x-ptn
  105. .pwz application/vnd.ms-powerpoint .r3t text/vnd.rn-realtext3d
  106. .ra audio/vnd.rn-realaudio .ram audio/x-pn-realaudio
  107. .ras application/x-ras .rat application/rat-file
  108. .rdf text/xml .rec application/vnd.rn-recording
  109. .red application/x-red .rgb application/x-rgb
  110. .rjs application/vnd.rn-realsystem-rjs .rjt application/vnd.rn-realsystem-rjt
  111. .rlc application/x-rlc .rle application/x-rle
  112. .rm application/vnd.rn-realmedia .rmf application/vnd.adobe.rmf
  113. .rmi audio/mid .rmj application/vnd.rn-realsystem-rmj
  114. .rmm audio/x-pn-realaudio .rmp application/vnd.rn-rn_music_package
  115. .rms application/vnd.rn-realmedia-secure .rmvb application/vnd.rn-realmedia-vbr
  116. .rmx application/vnd.rn-realsystem-rmx .rnx application/vnd.rn-realplayer
  117. .rp image/vnd.rn-realpix .rpm audio/x-pn-realaudio-plugin
  118. .rsml application/vnd.rn-rsml .rt text/vnd.rn-realtext
  119. .rtf application/msword .rtf application/x-rtf
  120. .rv video/vnd.rn-realvideo .sam application/x-sam
  121. .sat application/x-sat .sdp application/sdp
  122. .sdw application/x-sdw .sit application/x-stuffit
  123. .slb application/x-slb .sld application/x-sld
  124. .slk drawing/x-slk .smi application/smil
  125. .smil application/smil .smk application/x-smk
  126. .snd audio/basic .sol text/plain
  127. .sor text/plain .spc application/x-pkcs7-certificates
  128. .spl application/futuresplash .spp text/xml
  129. .ssm application/streamingmedia .sst application/vnd.ms-pki.certstore
  130. .stl application/vnd.ms-pki.stl .stm text/html
  131. .sty application/x-sty .svg text/xml
  132. .swf application/x-shockwave-flash .tdf application/x-tdf
  133. .tg4 application/x-tg4 .tga application/x-tga
  134. .tif image/tiff .tif application/x-tif
  135. .tiff image/tiff .tld text/xml
  136. .top drawing/x-top .torrent application/x-bittorrent
  137. .tsd text/xml .txt text/plain
  138. .uin application/x-icq .uls text/iuls
  139. .vcf text/x-vcard .vda application/x-vda
  140. .vdx application/vnd.visio .vml text/xml
  141. .vpg application/x-vpeg005 .vsd application/vnd.visio
  142. .vsd application/x-vsd .vss application/vnd.visio
  143. .vst application/vnd.visio .vst application/x-vst
  144. .vsw application/vnd.visio .vsx application/vnd.visio
  145. .vtx application/vnd.visio .vxml text/xml
  146. .wav audio/wav .wax audio/x-ms-wax
  147. .wb1 application/x-wb1 .wb2 application/x-wb2
  148. .wb3 application/x-wb3 .wbmp image/vnd.wap.wbmp
  149. .wiz application/msword .wk3 application/x-wk3
  150. .wk4 application/x-wk4 .wkq application/x-wkq
  151. .wks application/x-wks .wm video/x-ms-wm
  152. .wma audio/x-ms-wma .wmd application/x-ms-wmd
  153. .wmf application/x-wmf .wml text/vnd.wap.wml
  154. .wmv video/x-ms-wmv .wmx video/x-ms-wmx
  155. .wmz application/x-ms-wmz .wp6 application/x-wp6
  156. .wpd application/x-wpd .wpg application/x-wpg
  157. .wpl application/vnd.ms-wpl .wq1 application/x-wq1
  158. .wr1 application/x-wr1 .wri application/x-wri
  159. .wrk application/x-wrk .ws application/x-ws
  160. .ws2 application/x-ws .wsc text/scriptlet
  161. .wsdl text/xml .wvx video/x-ms-wvx
  162. .xdp application/vnd.adobe.xdp .xdr text/xml
  163. .xfd application/vnd.adobe.xfd .xfdf application/vnd.adobe.xfdf
  164. .xhtml text/html .xls application/vnd.ms-excel
  165. .xls application/x-xls .xlw application/x-xlw
  166. .xml text/xml .xpl audio/scpls
  167. .xq text/xml .xql text/xml
  168. .xquery text/xml .xsd text/xml
  169. .xsl text/xml .xslt text/xml
  170. .xwd application/x-xwd .x_b application/x-x_b
  171. .sis application/vnd.symbian.install .sisx application/vnd.symbian.install
  172. .x_t application/x-x_t .ipa application/vnd.iphone
  173. .apk application/vnd.android.package-archive .xap application/x-silverlight-app

Server

WSGIServer/0.2 CPython/3.7.2 表示服务端用的语言和服务

Vary

Vary 是一个HTTP响应头部信息,它决定了对于未来的一个请求头,

应该用一个缓存的回复(response)还是向源服务器请求一个新的回复。

它被服务器用来表明在 content negotiationalgorithm(内容协商算法)中选择一个资源代表的时候应该使用哪些头部信息(headers)

X-Frame-Options

The X-Frame-Options HTTP 响应头是用来给浏览器 指示允许一个页面

可否在 <frame><iframe><embed> 或者 <object> 中展现的标记。

站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。

使用 X-Frame-Options

X-Frame-Options 有三个值:

DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。
ps:

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,

在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。

所有头

6. 首部

6.1 通用首部字段

首部字段名 说明
Cache-Control 控制缓存行为
Connection 链接的管理
Date 报文日期
Pragma 报文指令
Trailer 报文尾部的首部
Trasfer-Encoding 指定报文主体的传输编码方式
Upgrade 升级为其他协议
Via 代理服务器信息
Warning 错误通知

6.2 请求首部字段

首部字段名 说明
Accept 用户代理可处理的媒体类型
Accept-Charset 优先的字符集
Accept-Encoding 优先的编码
Accept-Langulage 优先的语言
Authorization Web认证信息
Expect 期待服务器的特定行为
From 用户的电子邮箱地址
Host 请求资源所在的服务器
If-Match 比较实体标记
If-Modified-Since 比较资源的更新时间
If-None-Match 比较实体标记
If-Range 资源未更新时发送实体Byte的范围请求
If-Unmodified-Since 比较资源的更新时间(和If-Modified-Since相反)
Max-Forwards 最大传输跳数
Proxy-Authorization 代理服务器需要客户端认证
Range 实体字节范围请求
Referer 请求中的URI的原始获取方
TE 传输编码的优先级
User-Agent HTTP客户端程序的信息

6.3 响应首部字段

首部字段名 说明
Accept-Ranges 是否接受字节范围
Age 资源的创建时间
ETag 资源的匹配信息
Location 客户端重定向至指定的URI
Proxy-Authenticate 代理服务器对客户端的认证信息
Retry-After 再次发送请求的时机
Server 服务器的信息
Vary 代理服务器缓存的管理信息
www-Authenticate 服务器对客户端的认证

6.4 实体首部字段

首部字段名 说明
Allow 资源可支持的HTTP方法
Content-Encoding 实体的编码方式
Content-Language 实体的自然语言
Content-Length 实体的内容大小(字节为单位)
Content-Location 替代对应资源的URI
Content-MD5 实体的报文摘要
Content-Range 实体的位置范围
Content-Type 实体主体的媒体类型
Expires 实体过期时间
Last-Modified 资源的最后修改时间
请求头字段 说明 响应头字段
Accept 告知服务器发送何种媒体类型 Content-Type
Accept-Language 告知服务器发送何种语言 Content-Language
Accept-Charset 告知服务器发送何种字符集 Content-Type
Accept-Encoding 告知服务器采用何种压缩方式 Content-Encoding

Http 请求头 响应体 详解的更多相关文章

  1. HTTP请求与响应报文详解

    如图所示,这是客户端往服务器发送请求时的报文: 一般来说,将报文分成三个部分,请求行.请求头.请求体 如图,请求行包括三部分内容 1.请求方法,在HTTP里的请求方法种类较多,但就移动端开发来说,常用 ...

  2. HTTP请求行、请求头、请求体详解

    HTTP 请求头各参数具体含义 Header 解释 示例Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/htmlAccept-Charset 浏览器可以接 ...

  3. HTTP请求行、请求头、请求体详解(转)

    转自 https://blog.csdn.net/u010256388/article/details/68491509/     HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+ ...

  4. 【校招面试 之 网络】第3题 HTTP请求行、请求头、请求体详解

    1.HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE.HEA ...

  5. jmeter --响应断言详解

    jmeter --响应断言详解 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-samp ...

  6. Jmeter接口之响应断言详解

    响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...

  7. Python网络请求urllib和urllib3详解

    Python网络请求urllib和urllib3详解 urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urlli ...

  8. [转载]MAC、IP头、TCP头、UDP头帧格式、详解

    原文地址:MAC.IP头.TCP头.UDP头帧格式.详解作者:iTudu 转自:http://zoufengfu168.blog.163.com/blog/static/546105520099133 ...

  9. NetBios 的结构体详解

    [NetBios 的结构体详解] NetBIOS是早期的局域网传输协议. 1.结构体. 2.命令 NetBIOS命令的使用方式有两种,即等待和非等待(或称为同步与异步)方式. 如果命令码的高阶位是0时 ...

随机推荐

  1. 实现不同分辨率、不同浏览器下高度自适应、iframe高度自适应

    html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...

  2. [转帖]Kubernetes - nginx-ingress 配置跳坑指南

    Kubernetes - nginx-ingress 配置跳坑指南 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...

  3. golang之匿名函数结合defer

    defer语句中的函数会在return语句更新返回值变量后再执行,又因为在函数中定义的匿名函数可以访问该函数包括返回值变量在内的所有变量,所以,对匿名函数采用defer机制,可以使其观察函数的返回值. ...

  4. youku项目总结(粗略总结)

    一.ORM 之前我们都是以文件保存的形式存储数据,这次我们用的是数据库结合python使用,用到 ORM:关系型映射 类>>数据库的一张表 对象>>表一条记录 对象.属性> ...

  5. 『Python基础练习题』day05

    # 请将列表中的每个元素通过 "_" 链接起来. users = ['毛利兰', '柯南', '怪盗基德'] # 请将元组 v1 = (11, 22, 33) 中的所有元素追加到列 ...

  6. hdu 1342.. 复习广搜 顺便练习一下一个脑残的格式

    In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular stra ...

  7. Linux判断SSD或HDD + 模拟SSD

    判断方法 方法一 判断cat /sys/block/*/queue/rotational的返回值(其中*为你的硬盘设备名称,例如sda等等),如果返回1则表示磁盘可旋转(HDD),返回0,则表示磁盘不 ...

  8. openstack-neutron(2)

    VXLAN 独立于底层的网络拓扑:反过来,两个 VTEP 之间的底层 IP 网络也独立于 VXLAN.VXLAN 数据包是根据外层的 IP header 路由的,该 header 将两端的 VTEP ...

  9. nginx Proxy Cache 配置

    总结一下 proxy cache 设置的常用指令及使用方法: proxy_cache proxy_cache zone | off 配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据.注意:z ...

  10. win10重装系统修改信息

    在安装win10系统之前要先进行ahci硬盘模式更改 ,以防止win10系统安装完成后出现蓝屏现象,那么如何进行ahci硬盘模式bios设置呢?今天我们就以映泰主板为大家介绍u盘装win10系统硬盘模 ...