Java web客户端和服务器端交互的原理.docxVIP

Java web客户端和服务器端交互的原理.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaWeb客户端和服务器端交互的基本原理首先,通过浏览器和效劳器端建立无状态连接接着,通过IO流进消息信息严格遵循报文接口,然后会话结束然后关闭连接这种基于TCPIP的框架的整体构架概述,包括TCPIP协议的四个层次,以及协议的Java实现方式

Javaweb客户端和效劳器端交互的原理

其实客户端和效劳器端的交互原理很简单:即先是浏览器和效劳器端建立Socket无状态连接,也就是短连接,然后通过IO流进行报文信息(这个报文是严格遵循报文接口的)的交互,最后会话结束后就关闭连接。对于这些底层的协议和报文的打包解包交互的实现,其实java和浏览器早都已经封装好了,程序员只要专注于业务逻辑的实现就行。

a.TCP/IP整体构架概述

TCP/IP协议并不彻底符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

i.应用层:应用程序间沟通的层,如超文本传送协议()、简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Tel)等。

ii.传输层:在此层中,它提供了节点间的数据传送效劳,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包参加传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

iii.互连网络层:负责提供根本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

iv.网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ether、SerialLine等)来传送数据。

b.协议介绍:

i.是一种超文本传送协议(HyperTextTransferProtocol),是一套计算机在网络中通信的一种规那末。在TCP/IP体系结构中,属于应用层协议,位于TCP/IP协议的顶层

ii.是一种无状态的的协议,意思是指在Web浏览器(客户端)和Web效劳器之间不需要建立持久的连接。整个过程就是当一个客户端向效劳器端发送一个请求(request),然后Web效劳器返回一个响应(response),之后连接就关闭了,在效劳端此时是没有保存连接的信息。

iii.遵循请求/响应(request/response)模型的,所有的通信交互都被构造在一套请求和响应模型中。

iv.浏览WEB时,浏览器通过协议与WEB效劳器交换信息,Web效劳器向Web浏览器返回的文件都有与之相关的类型,这些信息类型的格式由MIME定义。

c.协议的java实现方式

不管是TCP/IP协议也好,还是协议也好,java都是通过套接字(java..Socket)来实现的,可以参考我的另一篇技术博客:一个工程看javaTCP/IPSocket编程(1.3版)

a.定义的事务处理由以下四步组成:

i.建立连接:

例如我在浏览器里输入cuishen.iteye.,客户端请求这个地址时即翻开了web效劳器端口的一个套接字。因为在网络中间作为传递数据的实体介质就是网线,数据实质上是通过IO流进行输出和输

入,这就不难理解我们为什么在写一个Servlet的时候要引用importjava.io.*;的原因,包括我们在向客户端回发结果的时候要用到PrintWriter对象的println()方法。其实请求的这个地址还要加之端口号80,80可以不写,是因为浏览器默认的端口号是80。

在Java底层代码中是这样实现的,只无非它们已经帮我们做了。

Socketsocket=newSocket(cuishen.iteye.,80);

InputStreamin=socket.getInputStream();

OutputStreamout=socket.getOutputStream();

ii.客户端发送请求报文(request)

一旦建立了TCP连接,Web浏览器就会向Web效劳器发送请求命令,是一个ASCII文本请求行,后跟0个或者多个头标,一个空行和实现请求的任意数据。

即报文分四个局部:请求行,请求头标,空行和请求数据

1)请求行

请求行由三个标记组成:请求方法、请求URL和版本,中间用空格分开

例如:GETcuishen.iteye./blog/242842/1.1

标准定义了8种可能的请求方法:(最常见的就是GET和POST两种方法)

GET--检索URI中标识资源的

文档评论(0)

188****3111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档