目录
web应用
web是一个科学家Tim Berners-Lee发明的,World Wide Web,就是万维网应用
万维网应用和http
万维网应用采用http协议。
http叫HyperText Transfer Protocol超文本传输协议。
http使用tcp传输层,
HTTP连接类型
非持久性连接
非持久性连接时间分析
性能分析
非持久性连接浏览器要对每个请求建立tcp连接,开销资源大,并且服务端的压力也很大。
持久性HTTP
多个http请求共用一个tcp,第一个tcp建立后,先不断开,后面的http请求也通过这个tcp连接。
无流水:客户端收到第一个请求的响应,才会发出第二个请求,
流水:HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间
HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。
HTTP消息格式
HTTP请求消息
host,当用到代理和缓存时有用,如果client没经过代理直接访问server就没用
请求通用格式
请求携带数据怎么办?Post和Get
HTTP响应消息
Server:服务器类型
Content-Length: 数据长度
Content-Type: text/html数据类型
data:数据
HTTP响应状态代码
Http方法类型
HEAD:只有请求头,没有数据,通常测试用
使用telnet请求网站
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
Cookie技术
为什么需要Cookie?
某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的 数据(通常经过加密)。
cookie和http
cookie是后来才发明的,正好http可扩展,利用可扩展性去实现新需求
- HTTP响应消息的cookie头部行
- HTTP请求消息的cookie头部行
- 保存在客户端主机上的cookie文件,由浏览器管理
- Web服务器端的后台数据库
Cookie的原理
client第一次访问server时,没有携带cookie,server发现client是第一次访问,就创建一个用户ID 1678,在响应中加个响应头,Set-cookie: 1678,client以后再访问时,会携带一个请求头,cookie: 1678,server就知道此client是谁,可对此用户特定操作。
Cookie的作用
Web缓存/代理服务器技术
作用
CDN
架构
Web缓存示例
局域网利用率:1.5Mbps/10Mbps=0.15;
总延迟=互联网上延迟(路由器到服务器延迟)+访问延迟(服务器处理)+局域网延迟
优化办法1
优化办法2
在服务器前架设缓存
如何确定缓存时最新的?条件性GET方法
缓存向server请求,携带请求头,上次修改日期,如果版本是最新,server就不会反回数据,只返回304。