Web与HTTP
1.Web最基本的构成要素是网页,同时网页间的互相链接形成庞大的信息网络和内容网络。
网页包含多个对象
对象:HTML文件、JPEG图片、视频文件、动态脚本等(HTML文件一般会包含对其他对象的链接)
2.对象的寻址
互联网有很多的网页,要对其进行区分,网页通过URL(统一资源定位符)来标识。
URL的基本格式:
协议://主机:端口号/路径
举例:
主机名:www.someschool.edu
路径:someDept/pic.gif
协议和端口号已经省略了
3.HTTP协议
3.1采用C/S结构,其中
客户是Browser,作用:请求、接收、展示Web对象
服务器:响应客户的请求,发送对象
3.2 有两个版本 HTTP/1.0 HTTP/1.1
3.3 HTTP是一个无状态的协议,即服务器不维护任何有关客户端过去所发请求的信息。
采用无状态的机制原因:1.需要维护状态(历史信息) 2.一旦客户或服务器重启了,会产生工作状态不一致,解决这种不一致代价很高。
4 HTTP连接的两种类型:非持久性连接、持久性连接
非持久性连接(HTTP1.0版本):建立每个TCP连接后最多允许传输一个对象。
持久性连接(HTTP1.1版本):建立每个TCP连接后允许多个对象。
举例:
请求www.someSchool.edu主机下的someDepartment目录下的home.index文件,假定这个文件包含文本和指向10个图片的链接。
说明:因为是非持久性连接,每次建立连接后最多只会发送一个对象,所以在4步骤会关闭TCP连接。HTTP客户端解析HTML文件时
发现有10个指向图片对象的超连接,所以会为每个图片对象重复还是那个面的6个操作。在网速比较慢时,网页先出来,图片没有,然后图片再
逐个出来。
4.1相应时间分析与建模:
响应时间分为三个部分:
(1)发起、建立TCP连接:1个RTT
(2)发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT
(3)响应消息中所含文件/对象传输时间
非持久性连接的缺点:
(1)慢,每个对象需要2个RTT以上的时间才能获得
(2)操作系统需要为每个TCP连接开销资源
4.2改进(持久性连接)
发送响应后,服务器保持TCP连接的打开,后续的HTTP消息可以通过这个连接发送
持久性连接细分为:没有流水线机制的持久性连接和带有流水线机制的持久性连接
无流水的持久性连接:客户端只有收到前一个响应后才发送新的请求,每个被引用的对象耗时1个RTT
带有流水机制的持久性连接:客户端只要遇到一个引用对象就尽快发出请求,理想情况下,收到所有的引用对象只需要耗时约1个RTT
5.HTTP消息的格式
HTTP协议的两类消息:请求消息和响应消息
请求消息的格式:
说明:请求消息要携带数据?例如登录邮箱,要输入登录名,密码
请求消息使用ASCII,人直接可读,如下是一个请求消息的例子:
说明:TCP已经建立连接了,这边的Host主机名还有意义吗?在缓存和代理服务器的时候用到。Mozilla/4.0这边写浏览器为了服务
器根据使用的浏览器发送不同的版本,因为不同的浏览器可能有不同的解释。
响应消息:
说明:Date:Thu,06 Aug 1998 12:00:15 GMT Web服务器生成响应消息的时间
Last_modified:网页的上次修改时间
请求的HTML文件是图中的data
状态行:
200 OK
301 Moved Permanently
400 Bad Request
404 Not Found
505 HTTP Version Not Supported
6.上传的方法
POST方法:网页经常需要填写表格,将表格里的数据放到消息体(Entity Body)里面,然后传给服务器,服务器从中提取数据。
Get方法:(输入的信息比较少时)将信息通过request行的URL字段上传,举例如下:
7.HTTP方法的类型 HTTP/1.0 的方法:GET、POST、HEAD(告诉服务器不要将请求的对象放到响应里面,做测试用的)
HTTP/1.1 的方法:GET、POST、HEAD、PUT(将消息体中的文件上传到URL字段所指定的路径,可以往Web服务器上传文件)、DELETE
(删除URL字段所指的文件)