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,客户端请求删除服务器的某个内容。
网友评论