JSP协议之HTTP协议

HTTP协议

 

                   请求头(客户端与服务器交互)

                            客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发生了一个HTTP请求,一个完整的HTTP请求包括:一个请求行、若干请求头、及实体内容

                            示例:

                                     GET/books/java.html HTTP/1.1                                                                                 请求行(请求行用于描述客户端的请求方式、请求的资源名称、及使用的HTTP协议版本)

                                                                                                                                                              请求方式:GET(缺省,特点:显示提交,URL地址后附带的参数是有限的,其数据容量通常不能超过1K; 提交数据显示在url栏中后面);

                                                                                                                                                                                  POST(一般用于表单的提交,则可以再请求的实体内容中向发武器发送数据,传送的数据量无限制,隐式提交);

                                     Accept:*/*

                                     Accept-Language:en-ue

                                     Connection:Keep-Alive                                                                                                  多个请求头(用于描述客户端请求的主机

                                     Host:localhost                                                                                                              ,及客户端的一些环境信息等)

                                     Referer:thp://localhost/links.asp

                                     User-Agent:Mozilla/4.0

                                     Accept-Encoding:gzip,deflate

 

                                     Hello world!                                                                                                                     实体内容(一般是表单所提交的内容)

 

                                     请求头的描述:

                                               Accept:                                                   告诉服务器,客户机所支持的数据类型,如:text/html,image/*; 就是说支持texthtml,支持所有的image; 如为:*/*;表示什么都支持

                                               Accept-Charset:ISO-8859-1              告诉服务器,客户机所采用的编码格式

                                               Accept-Encoding:gzip,compress     告诉服务器,客户机所支持的压缩格式

                                               Accept-Language: en-us,zh-cn         告诉服务器,客户机的语言环境

                                               Host:localhost:8080                           客户机要访问的主机

                                               If-Modified-Since:Tue,11 jul 2000 18:23:51 GMT             告诉服务器,资源的缓存时间; 我们上一次浏览此网页的时间,发送给服务器,服务器用于比对原网站的更新时间,如果原网站在此时间内更新过数据,就重新返回数据,如没有更新就直接用客户机中缓存内的所缓存的网页

                                               Referer:www.baidu.com                   告诉服务器,他是从哪个资源来访问服务器的; 这里表示这是从百度访问的该资源(可以用于防盗链)

                                               User-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)                                         告诉服务器,客户机的软件环境(系统,及浏览器版本等)

                                               Cookie:                                                   客户机通过这个可以向服务器带数据

                                               Connection:close/Keep-Alive           告诉服务器,当这个请求完毕后,是保持连接还是关闭连接;  close是关闭连接, Keep-Alive是保持连接

                                               Date:Tue,11 jul 2000 18:23:51 GMT              告诉服务器,客户机当前的时间

                                               UA-CPU:X86                                         告诉服务器,windows的运行平台,如64位,32位等

                                               If-None-Match:W/* 182-1303717494234

                   响应头(服务器与客户端交互)

                            一个http相应代表服务器向客户端回送的数据它包括:一个状态行、若干消息头、以及实体内容

                                     示例:

                                               HTTP/1.1  200  OK                                                      状态行(状态行用于描述服务器对请求的处理结果)

                                               Server:Microsoft-IIS/5.0

                                               Date:Tue,11 jul 2000 18:23:51 GMT                         多个消息头(消息头用于描述服务器的基本信息,

                                               Content-Length:2291                                                    以及数据的描述,服务器通过这写数据的描述信息,

                                               Content-Type:text/html                                                可以通知客户端如何处理等一会它(服务器)回送的数据。)

                                               Cache-control:private

                                              

                                               <html>

                                                        <body></body>                                                       实体内容(一般是网页代码)

                                               </html>

 

                                               响应头的描述

                                                        HTTP/1.1  200  OK                          描述返回数据的协议版本号、状态码、原因叙述

                                                                                                                         状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数.相应状态码分为5类,如:

                                                                                                                                   100~199                     表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

                                                                                                                                   200~299                     表示成功接收请求并已完成整个处理过程, 常用200

                                                                                                                                   300~399                     为完成请求,客户需进一步细化请求.例如,请求的资源已经移动到一个新的地址,常用302、307、304(307和304表示服务器的资源位做修改,可以用客户机上的缓存,302表示去访问Location: 这个头所返回的地址)

                                                                                                                                   400~499                     客户端的请求有误,常用404(404表示服务器没有这个资源;403表示服务器拒绝你访问这个资源,请检查是否有权限访问)

                                                                                                                                   500~599                     服务器端出现错误, 常用500,(如同一个response对象同时使用字符流和字节流时服务器就会返回此异常,因为它们是互斥的)

                                                        Location:www.baidu.com                 (请求重定向)这个头配合302状态码使用,用于告诉客户端应该转到的地址

                                                        Server:Apache-Coyote/1.1                服务器通过这个头,告诉客户端服务器的类型

                                                        Content-Encoding:gzip,compress   服务器通过这个头,告诉客户端数据的压缩格式

                                                        Content-Length:                                  服务器通过这个头,告诉客户端压缩后数据的大小

                                                        Content-Type:text/html; charset=UTF-8    服务器通过这个头,告诉客户端数据的类型(如要查询要返回的文件类型的详细请查询conf/web.xml)

                                                        Last-Modified:Tue,11 jul 2000 18:23:51 GMT  告诉客户端,当前资源最后发布时间

                                                        Refresh:1;[url=’http://www.baidu.com’]                   告诉浏览器隔多长时间刷新一次[如果在分号后面加上一个地址,表示隔多久时间跳转到这个网站]

                                                        Content-Disposition:attachment;filename=文件名 告诉浏览器通过这个头,告诉浏览器以下载方式打开

                                                        Transfer-Encoding:chunked                                           告诉浏览器文件的传送格式

                                                        Set-Cookie:ss=Q0=5Lb_nQ;path=/search

                                                        Etag:W/”7777-1242234904000”     缓存相关的头

                                                        Expires:-1                                               告诉浏览器,这个资源的缓存时间,-10表示不缓存; 如果要缓存,设置为要缓存到的时间

也是控制浏览器要不要缓存数据(浏览器的内核不同,所以响应头比较多)如果要缓存, 设置为要缓存到的时间

                                                        Cache-Control:no-cache

                                                        Pragma:no-cache

                                                        Connection:close/Keep-Alive           告诉浏览器请求完毕后是否断开连接

                                                        Date:Tue,11 jul 2000 18:23:51 GMT     告诉浏览器,服务器当前的时间

 

 

                   断点下载

                            请求头

                                     Range头指示服务器只传输一部分Web资源.这个头可以用来实现断点续传功能,Range字段可以通过三种格式设置要传输的字节范围:

                                               Range: bytes=1000-2000

                                                        表示请求服务器发送这个资源中1000字节到2000字节之间的内容

                                               Range: bytes=1000-

                                                        表示请求服务器发送这个资源中1000字节以后的所有内容

                                               Range: bytes=1000

                                                        表示请求服务器发送这个资源中最后1000字节的内容

                            响应头

                                     Accept-Ranges:这个头告诉浏览器这个资源是否支持Ranges(断点下载) 支持返回:bytes  不支持返回:none

                                     Content-Ranges:1000-3000/5000指定了返回的Web资源的字节范围。这里表示返回的数据是1000-3000字节之间的内容,这个资源总共有5000个字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值