java文件http网络通信_第1页
java文件http网络通信_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、HTTP 协议简介HTTP 协议是一种应用层协议,HTTP 是 HyperText Transfrotocol(超文本传输协议)的英文缩写。稳定版本 HTTP1.1。它是 Web 联网的基础,也是联网常用的协议之一,HTTP 协议是建立在 TCP 协议之上的一种协议。HTTP 可以通过传输层的 TCP 协议在客户端和服务器之间传输数据。HTTP 协议主要用于Web 浏览器和 Web 服务器之间的。,开头的 4 个字母 http 就相当于通知浏览器使用 HTTP 协议来和 host 所确定的服务器进行通讯。HTTP 协议有以下特点:支持 B/S 及C/S 模式。简单快速:客户向服务器请求服务时,

2、只需传送请求方法和路径。请求方法常用的有 GET、HEOST。灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记;无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。HTTP 连接HTTP 连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动连接。从建立连接到关闭连接的过程称为“一次连接”。在 HTTP 1.0 中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动连接。在 HTTP 1.1

3、 中则可以在一次连接中处理多个请求,并且多个请求可以不需要等待一个请求结束后再发送下一个请求进行,由于 HTTP 在每次请求结束后都会主动连接,因此 HTTP 连接是一种“短连接”、“无状态”,要保持客户端程序的状态,需要不断地向服务器发起连接请求。通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。HTTP 连接使用的是“请求响应”的方式(2 次握手),不仅在请求时需要先建

4、立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。而 Socket 连接在双方建立起连接后就可以直接进行数据的传输。HTTP 的工作方式基于 HTTP 1.0 协议的客户端在每次向服务器发出请求后,服务器就会向客户端返回响应消息,在确认客户端已经收到响应消息后,服务端就会关闭网络连接。在这个数据传输过,并不保存任何历史信息和状态信息,因此,HTTP 协议也被认为是无状态的协议。其工作方式如下图 9-2 所示。图 9-2 HTTP 1.0 的工作方式HTTP 1.1 和 HTTP 1.0 相比较而言,最大的区别就是增加了持久连接支持。当客户端使用 HTTP1.1 协议连接到服务器后

5、,服务器就将关闭客户端连接的主动权交还给客户端;也就是说,只要不调用 Socket 类的 close 方法关闭网络连接,就可以继续向服务器发送 HTTP 请求。其工作方式如下图 9-2 所示。图 9-3 HTTP 1.1 的工作方式HTTP1.1 除了支持持久连接外,还将 HTTP1.0 的请求方法从原来的三个(GET、T 和HEAD)扩展到了八个(OPTIONS、GET、HEOST、PUT、DELETE、TRACE 和CONNECT)。从而应用可以获取连接的信息,使得应用更加人性化。除了这些,还提供了认证、状态管理和缓存(Cache)等相关的请求头和响应头。HTTP 请求一个 HTTP如下:

6、的示例如:错误!超无效。,它其中的每一段信息表示的意义http 表示要通过 HTTP 协议来定位网络资源;host 表示合法的ernet 主机或者 IP 地址;port 指定一个端认都是 80;,为空则使用缺省端口 80,因为所有的 HTTP 连接的端口默abs_path 指定请求资源的 URI,例如输入:,浏览器自动转换成: HYPERLINK http:/w/ http:/w/。当网络应用程序收到一个HTTP 请求后,就会将其转化为一个格式化的 HTTP 请求,发送给服务器。HTTP 请求由三部分组成:请求行、消息报头、请求正文。它们会一起发给服务器端。一个使用GET 方法获取网页信息的

7、HTTP 请求示例如下:HTTP 请求方法HTTP/1.1 协议的不同操作方式:定义了八种方法(有时也叫“动作”)来表明 Request-URI 指定的资源OPTIONS:返回服务器针对特定资源所支持的 HTTP 请求方法。也可以利用向 Web服务器发送*的请求来测试服务器的功能性。HEAD:向服务器索要与 GET 请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。GET:向特定的资源发出请求。注意:GET 方法不应当被用于产生“副作用”的操作中,例如在 web app.中。其中一个原因是 GET 可能会被网络蜘蛛等随

8、意。T:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。T 请求可能会导致新的资源的建立或已有资源的修改。PUT:向指定资源位置上传其内容。GET/sle.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* AcceConnection:Keep-Alive Host:localhostUser-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)Accept-Encoding:gzip,deflateusername=usassword=absdDELETE:请求服务器删除

9、Request-URI 所标识的资源。TRACE:回显服务器收到的请求,主要用于测试或。CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的服务器。方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码 405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码 501(Not Implemented)。HTTP 服务器至少应该实现 GET 和 HEAD 方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。此外,除了上述方法,特定的 HTTP服务器还能

10、够扩展自定义的方法。最常用的是GET 和T 两种方法,GET 和T 方法主要有以下三点区别:T 请求可以向服务器传送数据,而且数据放在 HTML HEADER 内一起传送到服务端 URL 地址,数据对用户不可见。而 GET 是把参数数据队列加到提交的 URL 中,1.值 和 表 单 内 各 个 字 段 一 一 对 应 ,例 如(ht/s?w=%C4&inputT=2710)2.GET 传送的数据量较小,不能大于 2KB。T 传送的数据量较大,一般被默认为不受限制。但理论上,IIS4 中最大量为 80KB,IIS5 中为 100KB。T 安全性非常低,T 安全性较高。3.HTTP 响应和状态码HTTP 响应也是由三个部分组成:状态行、消息报头、响应正文,一并发给客户端,状态行中包括状态码:1xx:指示信息-表示请求已接收,继续处理。2xx:成功-表示请求已被成功接收、理解、接受。3xx:重定向-要完成请求必须进行更进一步的操作。4xx:客户端错误-请求有语法错误或请求无法实现。5xx:服务器端错误-服务器未能实现合法的请求。几个常见状态码说明如下表 9-2 所示。表 9-2 常见的HTTP 响应状态码状态码英文名说明200OK客户端请求成功400Bad Request客户端请求有语法错误,不能被服务器所理解401Unauthorized请求 ,这个

温馨提示

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

评论

0/150

提交评论