Http协议(xiéyì)概述第1页,共26页。HTTP协议(xiéyì)概述HTTP协议定义超文本传输协议(HyperTextTransferProtocol)http是什么?当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,我们在浏览器的地址栏里输入的网站地址叫做URL(统一资源定位符),就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成网页。第2页,共26页。Http协议(xiéyì)概述Http协议特点1.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。2.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。3.无连接:限制每次连接只处理一个请求。理完客户的请求,即断开连接。4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。第3页,共26页。Http协议(xiéyì)概述http是如何工作的第4页,共26页。Http协议(xiéyì)概述第5页,共26页。Http协议(xiéyì)概述请求行:请求方法+请求路径+所用的协议请求方法:GETPOSTPUTDELETETRACE,OPTIONS等这些我们常用的method有GET和POST所用的协议:目前一般常用的是HTTP/1.1,0.9,1.0已经基本不用.请求行示例:POST/oris-common-master-portlet/catchmentZone/get.do?mode=edit&displayunit=&Id=2HTTP/1.1第6页,共26页。Http协议(xiéyì)概述GET与POST方法的区别:1.在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTMLHEADER内提交。2.GET方式提交的数据最多只能有1024字节,而POST则没有此限制。3.安全性问题。正如在1中提到,使用Get的时候,参数会显示在地址栏上,而Post不会,Post安全性方面更为好一点。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。第7页,共26页。Http协议(xiéyì)概述请求头:由关键字/值对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有:Accept请求报头域用于指定客户端接受哪些类型的信息Accept-Charset请求报头域用于指定客户端接受的字符集Accept-Encoding请求报头域类似于Accept,但是它是用于指定可接受的内容编码Accept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。Authorization请求报头域主要用于证明客户端有权查看某个资源。当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。ContentLength:表示请求消息正文的长度。From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。Host(发送请求时,该报头域是必需的)Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTPURL中提取出来的User-AgentUser-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器,不过,这个报头域不是必需的。Cookie:服务器存储在客户端的信息,每次请求都会将服务器保存在客户端的cookies中第8页,共26页。Http协议(xiéyì)概述请求头示例:Host:localhost:8080Connection:keep-aliveContent-Length:0Accept:*/*Origin:http://localhost:8080X-Requested-With:XMLHttpRequestUser-Agent:Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/42.0.2311.135Safari/537.36Referer:http://localhost:8080/web/commenmaster1/commonmaster?p_auth=VyE3Xuy0&p_p_id=commonmasterportlet_WAR_oriscommonmasterportlet&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_commonmasterportlet_WAR_oriscommonmasterportlet_javax.portlet.action=doRenderPageAccept-Encoding:gzip,deflateAccept-Language:zh-CN,zh;q=0.8Cookie:COOKIE_SUPPORT=true...