http协议请求消息1.请求头2.请求体3.发送内容http响应消息请求行请求行主要主要包含三个内容。1.请求方式post/get请求方式2.资源路径3.http版本号1.0/1.1一共两个版本号请求行格式:请求方式资源路径HTTP版本号CRLF举例:GET/temp3o116.shtmlHTTP/1.1请求方式:GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上。GET方式如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET/mail/1.html?name=abc&password=xyzHTTP/1.1GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。POST方式如请求方式为POST方式,则可以在请求的正文内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。状态行状态行主要包含返回信息的开头状态:包含1.http版本号2.状态吗3.原因叙述状态行格式:HTTP版本号状态码原因叙述CRLF举例:HTTP/1.1200OK状态码用于表示服务器对请求的各种不同处理结果和状态,它是一个三位的十进制数。响应状态码分为5类,使用最高位为1到5来进行分类如下所示:常用状态吗:200(正常)表示一切正常,返回的是正常请求结果302/307(临时重定向)指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出。304(未修改)表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。404(找不到)服务器上不存在客户机所请求的资源。500(服务器内部错误)服务器端的程序发生错误http消息头消息头是请求和返回都包含消息头使用消息头,可以实现HTTP客户机与服务器之间的条件请求和应答,消息头相当于服务器和浏览器之间的一些暗号指令。每个消息头包含一个头字段名称,然后依次是冒号、空格、值、回车和换行符如:Accept-Encoding:gzip,deflate消息头字段名是不区分大小写的,但习惯上讲每个单词的第一个字母大写。整个消息头部分中的各行消息头可按任何顺序排列。消息头又可分为通用信息头、请求头、响应头、实体头等四类许多请求头字段都允许客户端在值部分指定多个可接受的选项,多个选项之间以逗号分隔。有些头字段可以出现多次,例如,响应消息中可以包含有多个”Warning”头字段。常用的消息头的细节信息请求头消息1.Accept:浏览器可接受的MIME类型类型可以在tomcat的web.xml配置文件中找到告知服务器,浏览器可接受的MIME类型(MultipurposeInternetMailExtensation)多用途互联网邮件扩展类型MIME类型:文件系统文件类型用文件的扩展名来区分MIME类型由大类型/小类型组成的.比如text/htmltext/csstext/javascriptimage/bmpimage/jpeg(Tomcatconf/web.xml2.Accept-Charset:支持的字符集,可以支持的哪些字符。3.Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzipgzip,deflate,所支持的数据压缩格式。4.Host:初始URL中的主机和端口5.Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面,包含一个URL,该URL表示当前页来源(用于防盗链,统计广告投放效果)6.Content-Type:内容类型请求正文内容的MIME类型(适应于Post请求),默认是application/x-(username=sa&age=30)响应头消息:1.Location:告知浏览器,新的资源的位置(302跳转)2.Content-Encoding:gzip代表服务器采用什么方式进行数据压缩GZIPOutputStream3.Content-Length:服务器发送的数据长度4.Content-Language:zh-cn服务发送的文本的语言5.Content-Type:application/octet-stream;text/html;charset=GB2312服务器发送的内容的MIME类型6.Last-Modified:服务器最后修改资源的时间7.Refresh:指定服务器刷新Refresh:1;url=指示客户端刷新频率。单位是秒8.Content-Disposition:attachment;filename=aaa.zip指示客户端下载文件9.Expires:-1清理缓存10.Cache-Control:no-cache(1.1)没有缓存11.Pragma:no-cache(1.0)没有缓存//response.setHeader(*Expires,-1);**Set-Cookie:SS=Q0=5Lb_nQ;path=/search服务器端发送的Cookiehttp请求的一个截图:此截图是对一个css样式的一个请求。和返回信息。Httpwatch截图:GET/__utm.gif?utmwv=5.5.3&utms=6&utmn=378348222&utmhn==utf-8&utmsr=1366x768&utmvp=1349x250&utmsc=24-bit&utmul=zh-cn&utmje=1&utmfl=14.0%20r0&utmdt=HttpWatch%3A%20Editions&utmhid=2065210530&utmr=-&utmp=%2Feditions.htm&utmht=1404038195617&utmac=UA-533344-1&utmcc=__utma%3D1.146070084.1404037461.1404037461.1404037461.1%3B%2B__utmz%3D1.1404037461.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=qF~HTTP/1.1Accept:image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5X-HttpWatch-RID:46834-10029Referer::zh-Hans-CN,zh-Hans;q=0.5User-Agent:Mozilla/5.0(WindowsNT6.3;Trident/7.0;rv:11.0)likeGeckoAccept-Encoding:gzip,deflateHost::Keep-AliveHTTP/1.1200OKPragma:no-cacheExpires:Wed,19Apr200011:43:00GMTLast-Modified:Wed,21Jan200419:51:30GMTX-Content-Type-Options:nosniffContent-Type:image/gifDate:Mon,23Jun201416:04:00GMTServer:Golfe2Content-Length:35Age:498784Cache-Control:private,no-cache,no-cache=Set-Cookie,proxy-revalidateAlternate-Protocol:80:quicGIF89ahttp消息的共性说明一些请求条件1.消息头格式:每个消息头包含一个头字段名称,然后依次是冒号、空格、值、回车和换行符。2.消息头名称不区分大小写。3.不区分顺序4.请求头字段可以包含多个可选字段,用逗号隔开。5.有些字段可以出现多次。http请求消息http请求是连接到服务器之后,游览器向服务器发送的一个请求命令行。主要包含三个部分:1.请求行请求格式:请求方式(get/post)请求资源路径路径请求协议http/1.0(1.1)请求方式:最主要包含两个get或者post请求方式资源路径:是请求的资源的路径位置例如请求的css样式的资源位置请求协议只包含两个http/1.0和http/1.1两个请求协议。例如下面的请求行:GET/mail/1.html?name=abc&password=xyzHTTP/1.12.多个消息头消息头提供给服务器一些关于游览器访问的信息:1.Accept:浏览器可接受的MIME类型类型可以在tomcat的web.xml配置文件中找到告知服务器,浏览器可接受的MIME类型(MultipurposeInternetMailExtensation)多用途互联网邮件扩展类型MIME类型:文件系统文件类型用文件的扩展名来区分MIME类型由大类型/小类型组成的.比如text/htmltext/csstext/javascriptimage/bmpimage/jpeg(Tomcatconf/web.xml2.Accept-Charset:支持的字符集,可以支持的哪些字符。3.Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzipgzip,deflate,所支持的数据压缩格式。Accept-Encoding:gzip,deflate4.Host:初始URL中的主机和端口5.Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面,包含一个URL,该URL表示当前页来源(用于防盗链,统计广告投放效果)6.Content-Type:内容类型请求正文内容的MIME类型(适应于Post请求),默认是application/x-(username=sa&age=30)7.User-Agent:客户端浏览器8.If-Modified-Since:Wed,02Feb201112:04:56GMT利用这个头与服务器的文件进行比对,如果一致,则从缓存中直接读取文件。判断请求内容月缓存数据是否相同9.Content-Length:表示请求消息正文的长度10.Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP1.1(HTTP1.1默认进行持久连接。11.Date:Date:Mon,22Aug201101:55:39GMT请求时间GMT。3.正文http响应消息http响应消息是服务器返回给游览器的一些信息,主要包含1.状态行状态行用于服务器返回游览器的一些状态信息,主要格式是格式:HTTP版本号状态码原因叙述CRLF举例:HTTP/1.1200OKhttp版本号:http版本和请求行的版本类似格式状态码:指示服务器返回给游览器的一些状态信息状态码用于表示服务器对请求的各种不同处理结果和状态,它是一个三位的十进制数。响应状态码分为5类,使用最高位为1到5。常见状态吗:200:正确302、307:重定向,会在url的location位置给出304:使用缓存里面的数据没有发生变化404:服务器没有找到访问内容,访问错误500:服务器内部错误2.多个消息头响应消息头是想应该游览器的一些相关信息:1.Location:告知浏览器,新的资源的位置(302跳转)2.Conte