计算机网络自顶向下 :应用层(简单概念和http协议相关简单介绍)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aoumeior/article/details/74279135

应用层

现代网络应用的主流体系结构:客户—服务器体系结构,对等体系结构(P2P)

客户—服务器体系结构:

具有周知的、固定的地址、客户之间不通接通信。
应用程序在间断,连接的主机对之间供用直通信,这些主机对被称为对等方。

对等体系结构(P2P)

对于服务器有最小的(或没有依赖)
P2P具有自扩展性,例如,P2P文件共享应用中尽管每个对等方都由请求3件产生工作量,但每个对等方通过向其他对等方分发文件来增加系统服务能力。

相关概念

  1. 在给定一对进程之间的通信场景中,发起通信(即在该会话开始时发起与他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程的服务器。
  2. 套接字是同一台主机内应用层与运输层之间的接口。
  3. 可供应用程序使用的运输服务:①可靠的数据服务②吞吐量:可用吞吐量就是发送进程能够接收进程③定时④安全性
  4. 应用层协议定义了运行在不同端系统上的应用程序进程如何互传报文
  5. URL地址的两部分组成:存放对象的服务器名和对象的路径名(现在不是这样了)
  6. 因为HTTP服务器不保存关于客户的任何信息所以说HTTP为一个无状态状态协议
  7. 每个请求/响应对是经过一个单独的TCP连接发送,还是所有的请求都是通过相同的TCP连接发送,前一种称非持续连接,后一种称持继连接。
  8. 采用非持连接的HTTP
    ①必须为每一个请求的对象建立和维护一个全新的连接,对于每一个连接在客户端和服务端都分配了TCP的缓存区和保持TCP变量。②延时高,每一个对象经受两倍RTT的交付时延。
  9. 持续连接:服务器在发送响应后保持该TCP连接打开,在相同客户后续请求和响声报文能够通过相同连接进行传送。

HTTP:第一个协议

请求:

响应:
这里写图片描述
其响应报文中
Data指的是服务器从文件系统中检索该对象,插入响应报文,并发送该响应报文的时间。
last-Madifide:指文件最后修改时间,这个很重要,因为我们在进行重新访问时缓存机制就是根据最后时间判断是否重新发送。

响应行:

200     OK      请求成功,信息在返回目的响应报文
301     Moved   Permanently 请求对象被永久转移,新的VRL在响应报文中的location首部行之中。
400     Bad Request:一个通用的差错代码,指示该请求不能被服务器理解
404     Not Found   被请求的文档不在服务器上
SOS     服务器不支持请求报文使用的HTTP协议版本
304     Not     Modified        它告诉缓存器可以使用该对象。

服务器与用户的交互cookie

Session(会话)跟踪

Session(会话)跟踪是web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪用户的整个会话。常用的会话跟踪技术是Cookies与Session。Cookies通过在客户端跟踪确认用户信息,Session通过在服务器端信息确全用户身份。
①一个用户所有操作应属于同一个会话
②HTTP协议是无状态协议。一是数据交换完毕,客户端与服务端的连接就关闭,再次交换数据需要建立新的连接。

Session

Session就另一种记录客户状态的机制,不同的是Cookie保存在本地而Session是保存在服务端的,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session.
如果说coolies通过检查客户身上的通行证来确认用户,那么session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访时只要查询客户档案表就可以了。
1.2.3session的生命周期
Session保存在服务端。为了获取更高的存取速度,服务器一般把session放在内存中,每一个用户都有一个独立的session。如果session内容过于复杂,大量用户访问可能会导致内存溢出。因此session里的信息应该精简。
Session生成后只要用户继续访问,服务器就会更新,session的最后访问时间,并维护该session
1.2.4session的有效期
为了防止内存溢出,服务器会把长时间内没有活跃的session从内存删除,这个时间就是session的超时间。

Cookie机制

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记该用户的状态,就使用response向客户端颁发一个cookie。客户端就会把cookie保存下来。当重新访问该网端浏览器把请求的网址连同该cookie一并交给该服务器。服务器可通过检查该cookie辨认用户状态。

Cookie的4个技术组件:

①在HTTP响应报文中有一个cookie首部行
②在HTTP请求报文中有一个cookie首部行
③在用户端系统中保留一个cookie文件并由用户管理
④位于该web端站后有一个数据库

Cookie可在无状态的HTTP之上建立一个用户会话层。

Web缓存(代理服务器)

web缓存器有自己的磁盘存储空间,并在自己的磁盘空间中保存的对象的副本。

当浏览器每日向一个web缓存器时,假设浏览器正请求对象,将发生以下情况:

浏览器建立了一个到web缓存器的TCP连接,并向web缓存器的对象送一个HTTP请求。

①web缓存器进行检查,看看本地是否具有存储的对象副本,如果有web缓存器就向浏览器用HTTP响应返回该对象。

②如果web缓存器中没有该对象副本,它打开一个与该对象的初始服务器的TCP连接。

web缓存器则在这个缓存器到服务器的TCP连接发送一个HTTP请求。在收到该对象后初始服务器向该web缓存发送具有该对象的响应。

当web缓存器接收到该对象时,它在本地存储一份副本,并向客户发送该副本(通过现有的客户与缓存器之间的TCP连接)

Web缓存的好处

  1. web缓存器可以大减少对客户请求的响应时间,特别是当客户与初始服务器之间瓶颈带宽远低于客户与web缓存器之间的瓶颈带宽时更是如此。

  2. web缓存器能从整体上大大减少因特网上的web流量、从而改善所有应用的性能。
    (web缓存器能够迅速将该对象交付给用户)

内容分发网络:(CDN)(Content Delivery Network):

其基本思路是尽可能避开互联网上有可能影响数据传输速度与稳定性瓶颈环节,使内容传输的更快、更稳定。通过在网络各处设置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时的根据网络流量和各节点的连接,负载状况以及用户的距离和响应时间等综合信息将用户请求重新导向离用户最近的服务节点上。使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问的响应速度。

条件GET方法判断:保存在服务器中的对象内容是否陈旧。
①请求报文使用GET方法
②请求报文中包含一个“if-modified-since”首部行。那么,这个HTTP请求报文就是一个条件GeT请求报文

其他

wireshark中的http与tcp

这里我是抓取有道词典首页的包,有道词典首页采用的是HTTP协议,部分包如下:

(因为我对应用wireshark 并不是特别熟练,因此难免有错误的地方,提前感谢大家不吝赐教。)

展开阅读全文

没有更多推荐了,返回首页