应用层原理

一. 应用结构体系结构:包括客户端 - 服务端体系结构和P2P体系结构。

1. 客户端 - 服务端体系结构是存在一个经常开机的服务器,接受来自各方客户端的请求,如浏览器请求。

2. P2P体系结构是应用程序在间断连接的主机之间使用直接通信,此时,主机可以当客户端(接受)也可以当服务端(发送),如共享文件。

二. 进程间通信

1. 进程:在操作系统中运行的程序,它是有操作系统定义的程序,专门负责进行通信的,而应用程序在某个操作系统中要进行通信(计算机网络交换报文),必须调用进程。

2. 客户和服务端进程:网络应用程序由成对进程组成,一端进程标识为客户端,另一端进程标识为服务端。举个例子,你要浏览google网站,首先你要打开浏览器,此时在你的主机就建立了一个进程(客户端),你输入google的网址,等待google服务器的响应,如果google服务器没有打开这个网站的进程,你就会返回一个错误。所以作为服务端,会一直开着服务进程等待客户机来连接。

3. 套接字(socket):是应用层和运输层的接口,负责发送或接受网络报文。进程就像是一座房子,建好了房子你得有个门吧,你要出去会见朋友,朋友也要来做客,而套接字(socket)就是进程的 "门" ,也成为应用程序和网络之间的应用程序编程接口(API)。

4. 进程寻址:要向另一台运行的主机进程发送分组,必须要指定地址(IP地址)和用于接受分组的通道(接收socket),也成为端口号。


三. HTTP协议

web相关概念:

(1). web页面:有对象组成。一个对象又一个文件组成,如html文件,图片,视频文件等。

(2). web浏览器:实现了HTTP的客户端。

(3). web服务端:实现了HTTP的服务端。(Apache, IIS,nginx等web服务器)


1. HTTP:定义了web客户机向web服务端请求web页面的方式,以及web服务器向客户机发送页面的方式。

2. HTTP基本原理:HTTP使用TCP作为它的支撑运输协议,HTTP客户机首先向服务端发起TCP连接,一旦连接成功,浏览器和服务器进程就可以通过套接字接口访问TCP。(web套接字接口一般为80端口)

3. HTTP原理:


过程:

1. 非持续连接的HTTP

客户机先向服务器发出TCP报文段请求连接,服务器响应向客户机发出TCP报文段(这是一个往返时间RTT),建立好了TCP连接通道之后,客户机向服务器发起HTTP请求文件,服务器响应,向客户机传输文件(服务器传输文件时间)并等待客户机接受收文件,客户机完全接收文件(存在接收文件时间)后,服务器关闭TCP连接,又是一个RTT。客户机浏览一个web页面要经历过 "三次握手" ,总的响应时间为2*RTT+文件/接收传输时间。(后面再讲TCP报文段格式)

2. 持续连接的HTTP

服务器在发送响应后保持该TCP的连接不间断,connection:keep-alive


四. HTTP报文格式

1.HTTP请求格式:



2. HTTP响应格式:


实例:


3. cookie:

HTTP服务器是无状态的,不会识别用户,但是服务器又希望能够识别用户身份,所以HTTP使用了cookie,它允许站点对用户进行跟踪,识别用户身份,比如你上网购物,没有用户身份识别,你打开一个页面就是一个新的身份,服务器不知道,存在cookie,你可以以你本人的身份去浏览整个网站的所有商品。建立cookie如图:


cookie技术存在四个组件:

(1)存在HTTP响应报文中的一个cookie首部行

(2)存在HTTP请求报文中的cookie首部行

(3)用户浏览器中保留的cookie文件

(4)位于web站点的后端数据库中

实例:


4. Web缓存

Web缓存器也叫代理服务器,它能够代表初始Web服务器来满足HTTP请求的网络实体,有自己的磁盘存储空间,保存最近请求过的对象的副本。如图:


请求过程:

(1)浏览器向缓存服务器发送一个TCP连接,并向web缓存器发送一个HTTP请求

(2)web缓存器检查本地是否存储了对象,如果存储了就向客户机浏览器发送HTTP响应报文

(3)如果本地没有该对象,则web缓存器向初始服务器请求TCP连接发送HTTP请求,初始服务器发送具有该对象的HTTP响应

(4)web缓存器在本地存储一个对象副本,并向浏览器发送该对象副本。

5. 条件GET方法:HTTP允许web缓存器证实它的对象是最新的,web缓存器向初始服务器发送含有 "If-Modified-Since:"的首部行,它将和初始服务器的 "Last-Modified" 做对比,如果一致,则返回一个不包含对象(节省带宽)带有 "304 Not Modified" 的响应报文 ,说明对象是最新的,可以发送给客户机浏览器。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章