计算机网络:应用层

q:什么是应用层?

a:应用层是运行在主机或者端系统的应用程序的相互通信的协议层

q:那这个协议层的作用是什么?

a:提供一个应用之间交互的报文规范,包括确定统一的报文类型和报文结构,以及报文的字段及其语义,如何发送报文以及收到报文后的响应规则

q:我们就是根据这些定义我们的应用层通信协议的吗?

a:这只是主要的必须的规则,还有其他一些自定义的用户规则,和可拓展的动态规则,作为一个应用层协议的补充。

q:如果我们定义好了一个报文,我们是怎么把报文发送的?

a:通过套接字借口,对于目前所有的端系统来说,他们都实现了tcp和udp协议的套接字,而不通的编程语言在调用这些借口,对套接字借口进行调用,对于目前的高级语言来说,底层的套接字接口都被封装好了,只需要一些简单的操作,我们就可以得到对应的套接字客户端或者服务端线程。

q:tcp和udp传输层协议又什么区别?为什么没有其他传输层协议

a:tcp是提供了数据可靠性传输和数据安全,保证数据的传输是安全的,且收到的数据是有序的,tcp还提供了拥塞控制,对整个网络环境的传输速率进行监控和传输调整。而udp只将数据传输出去,不保证数据是否正确,完全的传输到目的地,也不考虑对方收到的数据是否是有序的。目前没有其他传输层协议了,所有的应用层协议只能选择这两种协议的一种作为传输协议

q:传输层协议有哪些参考特性

a:可靠性,是否保证接收端接受到的数据的正确性和完整性。吞吐量,传输协议能够支持的最大发送速度,或者传输协议至少满足的传输速率。定时,传输过程的时延控制,是否支持在某时间内接受。安全,传输协议对数据是否进行加密,是否保证了数据不被窃取且翻译出来。目前通过ssl增强的tcp传输协议能够保证数据传输的安全性,所以tcp也可以说是安全的

q:应用层有哪些协议是使用tcp协议的?

a:根据应用层的要求来选择协议,一般的文件传输服务,ftp协议,邮件协议smtp,超文本协议http

q:http协议?

a:http协议是随着万维网诞生,web应用的诞生而形成的协议,http协议是客户端-服务端协议,客户端应用一般是浏览器之类的支持http请求发送和解析响应的应用,http服务应用支持http请求解析和响应。http服务是无协议的,是基于tcp协议传输协议的。http协议支持,长链接和短链接两种形式,长链接指的是,一个tcp链接中接受多个请求并响应,短链接指的是一个请求一个tcp链接,无状态指的是服务端和客户端不互相保持对方的状态,多次请求服务端都做同样的处理。

q:长链接和短链接的区别?

a:上面已经说了他们根本性的差别,就是请求和tcp链接之间的关系。对于长链接,我们能够不用多次创建tcp链接,减少了tcp之间的握手时延,但同时如果两个请求之间的间隙如果相差太大,则会增加请求间隙时延。而短链接则不会有间隙时延,每一个请求一个tcp链接,同时可以使用浏览器的并发请求,实现同时发送多个tcp请求,对页面进行加载,减少整体时延,但如果建立链接时间较长,且服务器压力很大的情况下,会影响整体的响应速度。所以两个各有区别,我们可以通过在http协议的首部行connection属性进行定义,来确定是否是长链接或者短链接。

q:http协议请求的基本格式

a:包括三部分,请求行,首部行,实体体。请求行包括请求方法(GET,HEAD,POST,PUT,DELETE),请求文件路径(URL),协议版本。首部行,可拓展的协议定义属性,一般包括,是长链接,请求主机地址,客户端应用版本,接受的语言等。实体体,请求要发送的文件信息,一般是请求表单中的信息,当然也可以定义自己的信息。

q:http协议响应的基本格式?

a:包括三部分,状态行,首部行,实体体。状态行依次为协议版本,状态码,短语(状态描述信息)。首部行,扩展的属性,一般包括,链接形式,响应时间,服务端应用版本,是否更新,内容长度,内容格式。

q:如何克服无状态?

a:在http协议RFC 6265版本之后,在请求报文首部行中新增cookie字端,同时针对该改变服务应用增加了session概念来保持两者的对应关系,以此来记录同一个客户端对服务连续的多个请求行为。

q:协议中是否更新字段的作用?

a:用于代理服务器的识别当前内容是否为最新版本。

q:代理服务器的作用?

a:代理服务器能够大大减少远程访问的时延,在使用了代理服务器之后,客户端发送的请求,首先通过来到代理服务器,代理服务器根据请求查看是否有本地版本,如果有则直接返回,如果没有将发送该链接到初始服务器请求内容后,保存副本并返回给请求客户端。客户端请求可以通过设置是否更新字段为true到代理服务器,代理服务器则使用head请求,查看本地版本是否为最新版本,从而保证代理服务器的内容为最新。在对外访问带宽处于瓶颈的网络结构中,增加代理服务器能够大大减少介入网络的传输压力。从而提升性能。

q:http请求方法各个的含义和用法?

a:get,请求,用于向服务器请求内容。head,获取头部,获取头部信息,一般用来检查客户端和服务器之间的链接状态,主要用于测试。post,提交,向服务器提交表单数据等微量数据。put,上传,客户端向服务器传输数据。delete,客户端请求删除服务器的某个内容。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3.因特网运输协议所不提供的服务 我们已经从四个方面组织了运输协议服务:可靠数据传输、吞吐量、定时、安全性。TCP...
    帽子和五朵玫瑰阅读 447评论 0 1
  • 一.应用程序体系结构:(开发者方面考虑) 1.客户-服务器体系结构: 服务器一直打开,来等待客户端的连接,比如:W...
    Skying_阅读 392评论 0 0
  • 计算机网络系列博文——目录 Web(World Wide Web) 20世纪90年代初因特网应用 Web应用的组成...
    疼呃阅读 745评论 0 0
  • 一、C/S结构:服务器 - 7*24小时提供服务;永久性访问地址/域名;利用大量服务器实现可扩展性客户机 - 与服...
    wing_yeah阅读 684评论 0 1
  • 1.应用层协议原理 1.1网络应用程序体系结构 1)客户-服务器体系结构 客户相互之间不直接通信。 该服务器具有固...
    Anne的时光阅读 382评论 0 0