
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
学习和熟练应用互联网网络知识是大多数软件开发程序员都应该具备的一个编程能力,下面我们就通过案例分析来简单了解一下,计算机网络应用层协议基础知识分享。
1、应用层协议
应用层协议(application-layerprotocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文,特别是应用层协议定义了:
交换的报文类型,例如请求报文和响应报文
各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
字段的语义,即这些字段中包含的信息的含义
一个进程何时以及如何发送报文,对报文进行响应的规则。
2、HTTP概况
Web的应用层协议是超文本传输协议(HyperTextTransferProtocol,HTTP),它是Web的核心,HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。HTTP使用TCP作为它的支撑运输协议(而不是在UDP上运行)。HTTP客户先发起一个与服务器的TCP连接,一旦连接建立,该浏览器和服务器进程就可以通过套接字接口访问TCP。
注意:服务器向客户发送被请求的文件,而不存储任何关于该客户的状态信息,假如某个特定的客户在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该客户提供了该对象就不再做出反应,而是重新发送该对象,就像服务器已经完全忘记不久之前所做过的事一样,因为HTTP服务器并不保存关于客户的任何信息,所以我们说HTTP是一个无状态协议(statelessprotocol)
3、非持续连接和持续连接
在许多因特网应用程序中,客户和服务器在一个相当长的时间范围内通信,其中客户发出一系列请求并且服务器对每个请求进行响应依据应用程序以及该应用程序的使用方式,这一系列请求可以以规则的间隔周期性地或者间断性地一个接一个发出。当这种客户-服务器的交互是经TCP进行的,应用程序的研制者就需要做一个重要决定,即每个请求/响应对是经一个单独的TCP连接发送,还是所有的请求及其响应经相同的TCP连接发送呢?采用前一种方法,该应用程序被称为使用非持续连接(non-persistentconnection);采用后一种方法,该应用程序被称为使用持续连接(persistentconnection)。尽管HTTP在其默认方式下使用持续连接,HTTP客户和服务器也能配置成使用非持续连接。
非持续连接有一些缺点:
必须为每一个请求的对象建立和维护一个全新的连接。对于每个这样的连接,在客户和服务器巾都要分配TCP的缓冲区和保持TCP变量。这给Web服务器带来了严重的负担,因为一台Web服务器可能同时服务于数以百计不同的客户的请求。
每一个对象经受两倍RTT的交付时延,即一个RTT用于创建TCP,另一个RTT用于请求和接收一个对象。在采用持续连接的情况下,服务器在发送响应后保持该TCP连接打开。在相同的客户与服务器之间的后续请求和响应报文能够通过相同的连接进行传送
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。