企业建站官网运营,盐城网络,购物网站销售管理,中国化学第九建设公司网站Web and HTTP
一些术语
Web页#xff1a;由一些对象组成对象可以是HTML文件、JPEG图像#xff0c;JAVA小程序#xff0c;声音剪辑文件等Web页含有一个基本的HTML文件#xff0c;该基本HTML文件又包含若干对象的引用#xff08;链接#xff09;通过URL对每个对象进行引用…Web and HTTP
一些术语
Web页由一些对象组成对象可以是HTML文件、JPEG图像JAVA小程序声音剪辑文件等Web页含有一个基本的HTML文件该基本HTML文件又包含若干对象的引用链接通过URL对每个对象进行引用 访问协议用户名、口令字、端口等 URL格式
Port://user:pswwww.someSchool.edu/someDept/pic.gif:port路径元素含义Port协议名user用户psw口令www.somSchool.edu主机名someDept/pic.gif路径名port端口 用户口令可以不提供即匿名访问 端口不填可以是默认的http-80ftp-21 HTTP概况
HTTP超文本传输协议
Web的应用层协议用户/服务器模式 客户请求、接收和显示Web对象的浏览器服务器对请求进行响应发送对象的Web服务器 HTTP 1.0: RFC 1945HTTP 1.1: RFC 2068 使用TCP
客户发起一个与服务器的TCP连接建立套接字端口号为80服务器接受客户的TCP连接在浏览器HTTP客户端与Web服务器HTTP服务器server交换HTTP报文应用层协议报文TCP连接关闭
HTTP是无状态的
服务器并不维护关于客户的任何信息
维护状态的协议很复杂
必须维护历史信息状态如果服务器/客户端死机他们的状态可能不一致二者的信息必须一致无状态的服务器能够支持更多的客户端
HTTP连接
非持久HTTP
最多只有一个对象在TCP连接上发送下载多个对象需要多个TCP连接HTTP/1.0使用非持久连接
持久HTTP
多个对象可以在一个在客户端和服务器之间的TCP连接上传输HTTP/1.1默认使用持久连接
非持久HTTP连接 响应时间模型
往返时间RTT一个小的分组从客户端到服务器在回到客户端的时间传输时间忽略 响应时间
一个RTT用来发起TCP连接一个RTT用来HTTP请求并等待HTTP响应文件传输时间
共2RTT 传输时间
持久HTTP
非持久HTTP的缺点
每个对象要 2 个RTT操作系统必须为每个TCP连接分配资源但浏览器通常打开并行TCP连接以获取引用对象
持久HTTP
服务器在发送响应后仍保持TCP连接在相同客户端和服务器之后的后续请求和响应报文通过相连的连接进行传送客户端在遇到一个引用对象的时候就可以尽快发送该对象的请求
非流水方式的持久HTTP
客户端只能在收到前一个响应后才能发出新的请求每个引用对象花费一个RTT
流水方式的持久HTTP
HTTP/1.1的默认模式客户端遇到一个引用对象就立即产生一个请求所有引用小对象只花费一个RTT是可能的
HTTP请求报文
两种类型的HTTP报文请求、响应
HTTP请求报文
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
Connection: close
Accept-language:fr解析报文如下
部分举例说明请求行GET /somedir/page.html HTTP/1.1命令 GET获取数据POST上载数据HEAD仅仅获取相应头部搜索引擎使用改命令得到头部之后建立索引资源路径/somedir/page.html协议/协议版本HTTP/1.1首部行Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr实体
HTTP请求报文通用格式 sp是space空格 cr是回车 if是有可能有有可能没有 提交表单输入
Post方式
网页通常包括表单输入包含在实体主体中的输入被提交到服务器
URL方式
方法GET输入通过字段请求行的URL字段上载
方法类型
HTTP 1.0
GETPOSTHEAD 要求服务器咋响应报文中不包含请求对象 - 故障跟踪
HTTP 1.1
GET、POST、HEADPUT 将实体主体中的文件上载到URL字段限定的路径 DELETE 删除URL字段限定的文件
HTTP响应报文
HTTP/1.1 200 OK
Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/htmldata data data data data ...解析
部分举例说明状态行HTTP/1.1 200 OKHTTP/1.1是协议及版本200是状态码OK是状态码相应状态信息首部行Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …… Content-Length: 6821 Content-Type: text/html数据data data data data data …
HTTP响应状态码
位于服务器 - 客户端的响应报文中的首行 一些状态码的例子
状态码状态信息说明200OK请求成功请求对象包含在响应报文的后续部分301Moved Permanently请求的对象己经被永久转移了;新的URL在响应报文的Location:首部行中指定客户端软件自动用新的URL去获取对象400Bad Request一个通用的差错代码表示该请求不能被服务器解读404Not Found请求的文档在该服务上没有找到505HTTP version Not supported版本不支持
用户-服务器状态cookies
大多数主要的门户网站使用cookies
4个组成部分
在HTTP响应报文中有一个cookie的首部行在HTTP请求报文含有一个cookie的首部行在用户端系统中保留有一个cookie文件由用户的浏览器管理在Web站点有一个后端数据库
Cookies:维护状态 Cookies能带来什么
用户验证购物车推荐用户状态
如何维持状态
协议端节点在多个事务上发送端和接收端维持状态cookieshttp报文携带状态信息
Cookies与隐私
Cookies允许站点知道许多关于用户的信息可能将他知道的东西卖给第三方使用重定向和cookie的搜索引擎还可能知道用户的更多信息广告公司从站点获得信息
Web缓存代理服务器
目标不访问原始服务器就满足客户的请求
用户设置浏览器通过缓存访问Web浏览器将所有的HTTP请求发送给缓存 在缓存中的对象缓存直接返回对象如对象不在缓存缓存请求原始服务器然后再将对象返回给客户端 Web缓存
缓存既是客户端又是服务器通常缓存是由ISP安装
为什么要使用Web缓存
降低客户端的请求响应时间可以大大减少一个机构内部网络与Internet接入链路上的流量互连网大量采用了缓存可以使较弱的ICP也能够有效提供内容
缓存示例 条件
平均对象大小 100kb也就是请求的文件的平均大小是100kb机构内浏览器对原始服务器的 平均请求率为 15请求/s平均到浏览器的速率1.5Mbps100kb * 15请求/s接入链路带宽1.54Mbps
相关数据计算 各种延时计算(Internet延时、接入延时、LAN延时) 延时如下 Internet延时公共网(public Internet)路由器到原始服务器 再返回到路由器的的延时 Internet 延时 2s这个也是网络核心的延时吧接入延时不确定不过有公式接入延时主要还是排队延时 d q u e u e d_{queue} dqueue I(1-I) * L / R 2minLAN延时客户端到LAN路由器再返回客户端的时间为10ms 流量强度和排队延时计算: 流量强度 I 平均到达浏览器的速率 / 接入链路宽带排队延时 t q u e u e t_{queue} tqueue I(1-I) * L / RL/R一个分组的传输时间 结果: LAN的流量强度 15%接入链路上的流量强度 99% 排队延迟会非常大排队延迟会随着分组的流量强度越接近于1趋近于无穷此时排队延迟会非常大总延时 LAN延时 接入延时 Internet 延时 ms 分 2s
流量强度 平均到达浏览器的速率 / 接入链路宽带 1.5 / 1.54 0.99
优化方式 提高接入链路带宽 假设 平均对象大小 100kb机构内浏览器对原始服务器的 平均请求率为 15请求/s平均到浏览器的速率1.5Mbps接入链路带宽1.54Mbps—— 154Mbps带宽提升 延时 Internet延时机构内部路由器到原始服务器 再返回到路由器的的延时 2sLAN延时客户端到LAN路由器再返回客户端的时间为10ms 结果: LAN的流量强度 15%接入链路上的流量强度 9.9%可以看到强度降低了很多排队延时也会下降总延时 LAN延时 接入延时 Internet 延时 ms 分 2s 代价: 增加了接入链路带宽非常昂贵 安装本地缓存 假设: 平均对象大小 100kb机构内浏览器对原始服务器的平均 请求率为 15请求/s平均到浏览器的速率1.5Mbps机构内部路由器到原始服务器再返回到路由器的的延时 Internet 延 时 2s接入链路带宽1.54Mbps 结果: LAN 利用率: 15%接入网络利用率 总体延迟 ? 代价: web缓存(廉价!)
计算链路利用率有缓存的延迟
假设: 缓存命中率0.440%请求在缓存中被满足其他60%的请求 需要被原始服务器满足接入链路利用率: 60%的请求采用接入链路进过接入链路到达浏览器的数据速 率 0.6*1.50 Mbps 0.9 Mbps利用率 0.9/1.54 0.58总体延迟 0.6 * (从原始服务器获取对象的 延迟也就是接入延时 Internet延时) 0.4 * (从缓存获取对象的延迟也就是LAN延时) 0.6 * (2s) 0.4 * (msecs这个很小所以几乎不看了) 1.2 secs比安装154Mbps链路还来得小 (而且 比较便宜!)
条件GET方法
目标如果缓存器中的对 象拷贝是最新的就不要发送对象缓存器: 在HTTP请求中指 定缓存拷贝的日期 If-modified-since:date服务器: 如果缓存拷贝陈 旧则响应报文没包含对象: HTTP/1.0 304 Not Modified