




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HttpHttp协议概述协议概述 HTTPHTTP协议概述协议概述HTTP协议定义 超文本传输协议(HyperText TransferProtocol)http是什么? 当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,我们在浏览器的地址栏里输入的网站地址叫做URL(统一资源定位符),就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成网页。 HttpHttp协议概述协议概述
2、Http协议特点 1.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。 2.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 3.无连接:限制每次连接只处理一个请求。理完客户的请求,即断开连接。 4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。 HttpHttp协议概述协议概述http是如何工作的 HttpHttp协议概述协议概述请求(request)请求行消息报头(请求头)请求正文 HttpHttp协议概述协议概述请求行: 请求方法+ 请求路径+ 所用的协议请求方法: GETPOSTPUTDELETETRAC
3、E,OPTIONS等这些 我们常用的method有GET和POST所用的协议: 目前一般常用的是HTTP/1.1,0.9,1.0已经基本不用.请求行示例: POST /oris-common-master-portlet/catchmentZone/get.do?mode=edit&displayunit=&Id=2 HTTP/1.1 HttpHttp协议概述协议概述GET与POST方法的区别: 1.在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTMLHEADER内提交。 2.GET方式提交的数据最多只能有1024字节,而POST则
4、没有此限制。 3.安全性问题。正如在 1 中提到,使用Get的时候,参数会显示在地址栏上,而Post不会,Post安全性方面更为好一点。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。 HttpHttp协议概述协议概述请求头: 由关键字/值对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有: Accept请求报头域用于指定客户端接受哪些类型的信息 Accept-Charset请求报头域用于指定客户端接受的字符集 Accept-Encoding请求报头域
5、类似于Accept,但是它是用于指定可接受的内容编码 Accept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。 Authorization请求报头域主要用于证明客户端有权查看某个资源。当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。 Content Length:表示请求消息正文的长度。 From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。 Host(发送请求时,该报头域是必需的)Host请求报头域主要用于指定被请求资源的
6、Internet主机和端口号,它通常从HTTPURL中提取出来的 User-Agent User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器,不过,这个报头域不是必需的。 Cookie:服务器存储在客户端的信息,每次请求都会将服务器保存在客户端的cookies中 HttpHttp协议概述协议概述请求头示例:Host: localhost:8080 Connection: keep-alive Content-Length: 0 Accept: */* Origin: http:/localhost:8080 X-Requested-With: XMLHttpReq
7、uest User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Referer:http:/localhost:8080/web/commenmaster1/commonmaster?p_auth=VyE3Xuy0&p_p_id=commonmasterportlet_WAR_oriscommonmasterportlet&p_p_lifecycle=1&p_p_state=norm
8、al&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_commonmasterportlet_WAR_oriscommonmasterportlet_javax.portlet.action=doRenderPage Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.8 C o o k i e : C O O K I E _ S U P P O R T = t r u e ; C O M P A N Y _ I D = 1 ; ID=66
9、466b63383878647672553d;USER_UUID=IDZcheyfFMV75PPlSrIHk0azUWCYpbNB; LOGIN=74657374; PASSWORD=5937365a764731443241633d; REMEMBER_ME=true; SCREEN_NAME=59426450565851685373493d; JSESSIONID=eQkP15kq8XuYawqVgoDcxuRc; GUEST_LANGUAGE_ID=en_US HttpHttp协议概述协议概述请求正文 请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文
10、。请求正文中可以包含客户提交的查询字符串信息:mode=edit&displayunit=&Id=2 HttpHttp协议概述协议概述响应(response)状态行消息报头(响应头)响应正文 HttpHttp协议概述协议概述状态行: response的第一行是状态行,由协议版本以及数字状态码和相关的文本说明组成,HTTP版本+状态码+原因短语 如:HTTP/1.1 200 OK HTTP/1.1 404 Not Found状态码: 1XX信息类(Information),表示收到Web浏览器请求,正在进一步的处理中 2XX成功类(Successful),表示用户请求被正确接收,
11、理解和处理例如:200OK 3XX-重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。 4XX-客户端错误(ClientError),表示客户端提交的请求有错误例如:404NOTFound,意味着请求中所引用的文档不存在。 5XX-服务器错误(ServerError)表示服务器不能完成对请求的处理:如500 HttpHttp协议概述协议概述消息报头(响应头): 跟请求头一样,也是由关键字/值对组成,每行一对,关键字和值用冒号(:)分隔。典型的响应头标有: Allow: 服务器支持哪些请求方法(如GET、POST等)。 Content-Encoding: 文档的编码
12、(Encode)方法 Content-Length: 表示内容长度 Content-Type:表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/htm Date:当前的GMT时间 Last-Modified:文档的最后改动时间 Location:表示客户应当到哪里去提取文档 Refresh:表示浏览器应该在多少时间之后刷新文档,以秒计 Server:服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。 Set-Cookie:设置和页面关联的Cookie HttpHttp协议概述协议概述请求正文 请求头和请求正文之间
13、是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:mode=edit&displayunit=&Id=2响应正文 响应正文是指服务器返回的文档,最常见的为HTML网页,响应头和正文之间也必须用空行分隔 HttpHttp协议概述协议概述一些常见的HTTP协议状态码的含义100 Continue初始的请求已经接受,客户应当继续发送请求的其余部分101 Switching Protocols服务器将遵从客户的请求转换到另外一种协议200 OK一切正常,对GET和POST请求的应答文档跟在后面201 Created服务器已
14、经创建了文档,Location头给出了它的URL。202 Accepted已经接受请求,但处理尚未完成。203 Non-Authoritative Information文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝204 No Content没有新文档,浏览器应该继续显示原来的文档。205 Reset Content没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容206 Partial Content客户发送了一个带有Range头的GET请求,服务器完成了它 HttpHttp协议概述协议概述300 Multiple Choices客户请求的文档
15、可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。301 Moved Permanently客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。302 Found类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。303 See Other类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取304 Not Modified客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since
16、头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。305 Use Proxy客户请求的文档应该通过Location头所指明的代理服务器提取400 Bad Request请求出现语法错误。401 Unauthorized客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。 HttpHttp协议概述协议概述403 Forbidden资源不可用。404 Not Found无法找到指定位置的资源405 Method Not Allowe
17、d请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。406 Not Acceptable指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容407 Proxy Authentication Required类似于401,表示客户必须先经过代理服务器的授权。408 Request Timeout在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。409 Conflict通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。410 Gone所请求的文档已经不再可用,而且服务器不知道应该
18、重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。411 Length Required服务器不能处理请求,除非客户发送一个Content-Length头。 HttpHttp协议概述协议概述412 Precondition Failed请求头中指定的一些前提条件失败413 Request Entity Too Large目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头414 Request URI Too LongURI太长416 Requested
19、 Range Not Satisfiable服务器不能满足客户在请求中指定的Range头501 Not Implemented服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答503 Service Unavailable服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头504 Gateway Timeout由作为代理或网关的服务器使用,表示不能及时地从远
20、程服务器获得应答505 HTTP Version Not Supported服务器不支持请求中所指明的HTTP版本 HttpHttp协议概述协议概述一些术语u连接(connection)为通信而在两个程序间建立的传输层虚拟电路。u客户端(client)为发送请求建立连接的程序。u用户代理(useragent)初始化请求的客户端程序。常见的如浏览器,编辑器,蜘蛛(可网络穿越的机器人),或其他的终端用户工具u服务器(Server)服务器是这样一个应用程序,它同意请求端的连接,并发送响应(response)。源服务器(Originserver)存在资源或者资源在其上被创建的服务器(server)被成
21、为源服务器(originserver)。u代理(Proxy)代理是一个中间程序,它既可以担当客户端的角色也可以担当服务器的角色。代理代表客户端向服务器发送请求。客户端的请求经过代理,会在代理内部得到服务或者经过一定的转换转至其他服务器。一个代理必须能同时实现本规范中对客户端和服务器所作的要求。 HttpHttp协议概述协议概述u网关(gateway)网关其实是一个服务器,扮演着代表其它服务器为客户端提供服务的中间者。与代理(proxy)不同,网关接收请求,仿佛它就是请求资源的源服务器。请求的客户端可能觉察不到它正在同网关通信。u年龄(age)一个响应的年龄是从被源服务器发送或被源服务器成功验证
22、到现在的时间。u保鲜(Fresh)如果一个响应的年龄还没有没有超过保鲜寿命(freshnesslifetime),那么它就是保鲜的.。u陈旧(Stale)一个响应的年龄已经超过了它的保鲜寿命(freshnesslifetime),那么就是陈旧的.u缓存(cache)缓存是程序响应消息的本地存储。缓存是一个子系统,控制消息的存储、获取和删除。缓存里存放可缓存的响应(cacheableresponse)为的是减少对将来同样请求的响应时间和网络带宽消耗。任一客户端或服务器都可能含有缓存,但缓存不能存在于一个充当隧道(tunnel)的服务器里。 HttpHttp协议概述协议概述缓存的处理流程 Http
23、Http协议概述协议概述缓存处理的具体步骤1 请求处理用户发起一个http请求,缓存获取到URL,根据URL查找是否有匹配的副本。2 新鲜度检测如果缓存中存在所请求资源的副本,则进行新鲜度检测。新鲜度检测指的是,HTTP发起一个请求时,发现缓存中有相应的副本,接着就会检查这个副本有没有过期,如果没有过期,直接使用。如果已经过期,则进行再验证。具体的实现在下面会介绍。3 服务器再验证缓存中的文档过期了并不代表他和服务器上的不一样,所以这个时候就需要问问服务器,过期的这段时间里这个文档到底有没有改变。如果改变了,缓存就会获取一份新的文档副本,然后发送给客户端。如果没有改变,缓存只需要获取新的首部,
24、包括一个新的过期时间,并对缓存中的首部更新。4 创建响应并返回我们希望缓存看起来就像是来自原始服务器一样,缓存将已缓存的服务器响应首部作为响应首部,发送给客户端。 HttpHttp协议概述协议概述保质期的实现HTTP中,通过Cache-Control首部和Expires首部为文档指定了过期时间,通过对过期时间的判断,缓存就可以知道文档是不是在保质期内。Expires首部和Cache-Control:max-age首部都是来告诉缓存文档有没有过期,为什么需要两个响应首部来做这件简单的事情了?其实这一切都是历史原因,Expires首部是HTTP 1.0中提出来的,因为他使用的是绝对日期,如果服务端
25、和客户端时钟不同步的话(实际上这种情况非常常见),缓存可能就会认为文档已经过了保质期。HTTP 1.1为了修正这个问题,引入了Cache-Control:max-age首部,这个首部使用相对时间来控制保质期,让一切变得更加合理。举个例子,我们买了一瓶汽水,如果使用Expires首部来标注保质期,就会这么写:饮料过期时间:2012年12月21日,如果某个2货不知道今天多少号,他还真不知道这饮料过期没,我小时候饮料都这么写。后来,有个挺有名的卖牛奶的,大概就叫蒙牛,他发明了一种标注保质期的方法,他怎么搞了?他这么写:保质期:12个月,行,牛逼了,我牛奶一年前就生产出来的牛奶,今天要发给厂家,发之前,先往包装上印上生产日期(当然是印发货那天),然后告诉你,明年才过期,这多聪明,搞成相对的,毒死你。也许HTTP 1.1借鉴了这个伟大的发明,于是就有了Cache-Control:max-age首部。 HttpHttp协议概述协议概述服务器再验证的实现缓存要问问服务器,牛奶已经过期了,到底还能不能使用。HTTP中,使用两个请求请首部来完成这个功能:If-Modifi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古呼伦贝尔农垦集团有限公司招聘笔试题库及答案详解(名校卷)
- 教师招聘之《小学教师招聘》综合练习附参考答案详解【研优卷】
- 2025年内蒙古呼伦贝尔农垦牙克石莫拐免渡河农牧场有限公司招聘笔试参考题库附答案详解(黄金题型)
- 教师招聘之《幼儿教师招聘》考前冲刺训练试卷附参考答案详解【b卷】
- 教师招聘之《小学教师招聘》考试押题密卷附答案详解【培优b卷】
- 教师招聘之《幼儿教师招聘》考前冲刺练习题及参考答案详解(培优)
- 2025年教师招聘之《小学教师招聘》练习题包含答案详解【培优b卷】
- 2025年教师招聘之《幼儿教师招聘》题库及答案详解(网校专用)
- 2025年教师招聘之《小学教师招聘》题库检测试卷及完整答案详解(典优)
- 教师招聘之《小学教师招聘》检测卷讲解【夺分金卷】附答案详解
- 砖厂安全生产风险分级管控和隐患排查治理双体系方案全套资料汇编
- 35KV集电线路安全施工措施
- 四川九寨沟国家地质公园规划(2022-2035年)
- 七上数学期末26天复习计划
- 铜矿选矿厂废气净化与能源回收
- 18项护理核心制度
- 部编版小学语文五年级上册课后习题参考答案(可下载打印)
- 2024年高中英语衡水体书法练字字帖
- 装配式结构吊装施工计算书
- JB-T 14400-2022 食品机械 隧道式蒸烤机
- 质量/安全生产管理制度
评论
0/150
提交评论