http协议
-
http协议(超文本传输协议)
-
http协议是基于Tcp/ip协议之上的应用层协议,不关心数据传输的细节,用来规范客户端和服务器端的数据传输格式(客户端和服务器端请求和响应的标准)
-
关于tcp
- tcp提供一种面向连接,可靠的字节流服务
- 在一个tcp连接中,仅有两方彼此进行通信,广播和多播不能用于tcp
- tcp 使用校验和,确认和重传机制来保证可靠传输
- tcp 给数据分解进行排序,并使用累积确认保证数据的顺序不变和非重复
- tcp使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小来进行拥塞控制
-
三次握手和四次挥手
- 三次握手
- 四次挥手
- 三次握手
-
组成
- http报文
- 请求报文
简单来说(开始行,请求头,请求实体) - 响应报文
简单来说(状态行,响应头,响应实体)
- 请求报文
- http报文
-
工作原理
- http协议是基于请求-响应模型
- 请求和响应步骤
- 客户端连接到Web服务器
- 一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.luffycity.com。
- 发送http请求
- 通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
- 服务器接受请求并返回http响应
- Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成
- 释放连接Tcp连接
- 客户端浏览器解析html内容
- 客户端连接到Web服务器
- 例如:在浏览器地址栏输入url,按下回车会经历以下流程
-
-
https协议
- 组成
- https是由两部分组成:http+ ssl/tls(一层加密信息模块)
- 工作原理
- 首先http请求服务端生成证书,客户端对证书的有效性,合法性,证书的公钥(rsa加密)等进行校验
- 客户端如果校验通过后,就会根据证书的公钥的有效,生成随机数,随机数使用公钥进行加密(rsa加密)
- 消息体产生后,对它的摘要进行md5(或sha1)加密此时就得到了rsa签名
- 发送给服务端,此时只有服务端(rsa私钥)能解密
- 解密得到的随机数,在用aes加密,作为密钥
- 组成
-
跨域
- 同源策略
-
长连接和短连接
-
http优化
- TCP复用:TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持
- 内容缓存:将经常用到的内容进行缓存起来,客户端就可以直接在内存中获取相应的数据
- 压缩:将文本数据进行压缩,减少带宽
- ssl加速:使用SSL协议对HTTP协议进行加密,在通道内加密并加速
- tcp缓冲:通过采取tcp缓冲技术,提高服务器响应速度
-
链接: