WEB协议与实践之HTTP11课件_第1页
WEB协议与实践之HTTP11课件_第2页
WEB协议与实践之HTTP11课件_第3页
WEB协议与实践之HTTP11课件_第4页
WEB协议与实践之HTTP11课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB协议与实践HTTP/1.12014.12startend20min124HTTP的发展史新旧方法、标头和响应码3高速缓存Keep-AliveHTTP协议发展史HTTP/0.9:从1990年就已经用来作为WWW的传输协议,只支持GET方法。

HTTP/1.0:1996发布RFC1945,推出新标准HTTP/1.0。

HTTP/1.1:1997推出RFC2068,HTTP/1.1的标准。

HTTP/1.1:1999推出RFC2616,废弃了RFC2068标准。方法请求命令功能GET最常用的请求方法,向Web服务器请求一个文件。POST向Web服务器发送数据让Web服务器进行处理。可以用于提交表单以及向新闻组、BBS、邮件群组和数据库发送消息。PUT向Web服务器发送数据并存储在Web服务器内部。DELETE从Web服务器上删除一个文件。HEAD只请求页面的应答头部信息,不包括具体页面信息。常用来测试URL的合法性、可访问性及最近更新。TRACE请求服务器将附加的文档无变更的返回,主要用于调试。

OPTIONS描述了在请求URL确定的请求/应答过程中通信条件或设备是否可行的信息。CONNECT与PROXY之间的连接管理通用标头通用头含义Date

表示消息发送的时间Pragma

用来包含实现特定的指令Cache-Control指定请求和响应遵循的缓存机制connection用于表明是否保存socket连接为开放via一个包含所有中间主机和协议的通用头标upgrade允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。例如:Upgrade:HTTP/2.0Transfer-Encoding

标明对应被接受方反向的消息体实施变换的类型Trailer消息尾部的标头Warning错误通知请求标头请求头含义Accept客户端可以处理的媒体类型Accept-Charset客户端可以处理的字符集Accept-Encoding客户端可以理解的编码机制Accept-Language客户端乐于接受的自然语言列表Authorization定义访问一种资源所必需的授权(域和被编码的用户ID与口令)。From包括控制请求用户代理的人的互联网E-MAIL地址Host说明了正在请求的资源的互联网主机和端口号HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回If-Modified-Since如果请求的变量自从这个域说明的时间以来没有被修改过,实体将不会从服务器返回;相反的,将返回304响应(没有修改的)而没有任何报文实体。响应标头响应头含义Location对于一个已经移动的资源,用于重定向请求者至另一个位置。与状态编码302(暂时移动)或者301(永久性移动)配合使用。Server一种标明Web服务器软件及其版本号的头标一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)配合使用。Retry-After由服务器与状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间Accpet-range允许服务器指明:将在给定的偏移和长度处,为资源组成部分的接受请求。Age允许服务器规定自服务器生成该响应以来所经过的时间长度,以秒为单位。Vary选择资源变体实体标头实体头含义Allow定义一个由位于请求URI中的资源所支持的HTTP方法列表。Content-Encoding一种介质类型修饰符,标明一个实体是如何编码的Content-Length指定包含于请求或响应中数据的字节长度。Content-Type标明发送或者接收的实体的MIME类型。Expires指定实体的有效期Last-Modified指定被请求资源上次被修改的日期和时间Content-MD5实体的一种MD5摘要,用作校验和。发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。Content-Range随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。实体标头实体头含义Content-Location指定包含于请求或响应中的资源定位(URI)。Content-Language实体的自然语言。ETag一种实体头标,它向被发送的资源分派一个唯一的标识符Extension-header允许客户端定义新的实体头,但是这些域可能无法未接受方识别。300客户请求的文件可以在多个位置找到,这些位置已经在返回的文件内列出301客户请求的文件在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL302类似于301,但新的URL应该被视为临时性的替代,而不是永久性的303类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文件应该通过GET提取304客户端有缓存的文件并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文件)。服务器告诉客户,原来缓存的文件还可以继续使用。305客户请求的文件应该通过Location头所指明的代理服务器提取400请求出现语法错误401访问被拒绝,客户试图未经授权访问受密码保护的页面。应答中会包含一个头,浏览器据此显示用户名字/密码对话框,然后再填写合适的Authorization头后再次发出请求。403资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致HTTP状态码404无法找到指定位置的资源405请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用,用来访问本页面的

HTTP方法不被允许406指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容,客户端浏览器不接受所请求页面的

MIME类型407要求进行代理身份验证,类似于401,表示客户必须先经过代理服务器的授权408在服务器许可的等待时间内,客户一直没有发出任何请求409通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功410所请求的文件已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文件永久地离开了指定的位置,而404表示由于未知的原因文件不可用。411服务器不能处理请求,除非客户发送一个Content-Length头HTTP状态码412请求头中指定的一些前提条件失败413目标文件的大小超过服务器当前愿意处理的大小414请求的资源URL长于服务器允许的长度415请求资源不支持请求文件格式416服务器不能满足客户在请求中指定的Range头417执行失败500服务器遇到了意料不到的情况,不能完成客户的请求501服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。502服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答503服务不可用,服务器由于维护或者负载过重未能应答504网关超时,表示不能及时地从远程服务器获得应答505服务器不支持请求中所指明的HTTP版本HTTP状态码与缓存相关的HTTP头

Last-Modified、Etag:用来验证网页的有效性。Expires、Cache-control:用来控制缓存的失效日期。Age、Vary等其中1,优先级别:Etag>Last-ModifiedCache-control>Expires2,Cache-control:public此指令优先于高速缓存采用的任何默认策略3,对于一般的纯静态页面(html、gif、jpg、css、js)会有Last-Modified信息,而不会在响应头添加Expires字段。与缓存相关的HTTP头

协议头名称说明Cache-control在http/1.1中新增的标头,指定请求和响应遵循的缓存机制,对高速缓存进行控制。对于我们cdn节点来说,这个是最重要的标头,我们节点的默认高速缓存策略都必须服从它。Cache-control标头分为高速缓存控制请求指令和高速缓存控制响应指令。Expires源服务器利用这个标头,指出在这个标头的时间之后,资源就应当过期并且失效。在Expires标头所指定的日期之后,就不能再高速缓存响应。Age服务器用Age标头指出响应是多久以前在原始服务器生成的。对于我们的cdn节点来说,这个值就是我们节点上缓存的资源被验证开始,一直到现在所经历的时间。我们的节点在响应最终用户的时候,必须生成Age头。(最终用户浏览器缓存时间=cache-control中指定的过期时间-age。)与缓存相关的HTTP头

协议头名称说明Last-Modified文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(NotModified)状态。Last-Modified也可用setDateHeader方法来设置。Etag

又称为实体标签,它和Last-Modified配合使用,通过让客户端浏览器缓存部分数据,从而达到减少服务器压力的另外一种途径。ETag标头是特定资源版本的唯一标识符。它由客户端用来验证客户端缓存的内容,以避免再次请求该内容。Vary

服务器使用响应的标头字段“Vary”来表明响应实体是服务器端根据具体的请求而从不同版本的有效响应缓存中选择出的最合适的响应。“Vary”标头中列出的字段名称取自请求标头集合。Cache-control响应指令

指令简介Public允许在任何地方高速缓存响应Private对于特定的用户不响应No-store不允许高速缓存保存响应、请求No-cache在事先没有重新验证的情况下,不得使用高速缓存的内容No-transform代理不得更改媒体类型Must-revalidate可以高速缓存,但是必须进行重验证,查看是否过期Max-age响应的存活期限不能大于此值扩展权标代表新的响应指令的新权标缓存建议内容不能缓存的,建议使用cache-control:no-store指令。只是某个内容中的某个字段值不能缓存的话,建议使用cache-control:private=“字段名”指令。内容能缓存,但是一定要保证每次响应都是最新的,建议使用:cache-control:no-cache指令。内容能缓存一段时间,源服务器使用http1.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论