1.HTTP概念
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在 TCP 之上。 它指定了客户端可能发送给服务器什么样的消息(request)以及得到什么样的响应。(response)
2.HTTP构成
空行解决了报头和有效载荷分离的问题 content-length明确了正文的长度,解决了包与包之间的边界问题
3.HTTP协议格式
(1)HTTP方法
GET 获取资源,这种方法通常不用写正文 支持HTTP/1.0 HTTP/1.1
POST 传输实体主体 该方法通常要加正文 支持HTTP/1.0 HTTP/1.1
PUT 传输文件 支持HTTP/1.0 HTTP/1.1
HEAD 获得报文首部 支持HTTP1.0 HTTP/1.1
DELETE 删除文件 支持HTTP1.0 HTTP/1.1
OPTIONS 询问支持的方法 支持HTTP1.1
TRACE 追踪路径 支持HTTP1.1
CONNECT 要求用隧道协议连接代理 支持HTTP1.1
LINK 建立和资源之间的联系 支持HTTP1.0
UNLINK 断开连接关系 支持HTTP1.0
(2)HTTP状态码
常见的状态码:
100:Continue 继续。客户端应继续向其请求
200:OK请求成功
301:Moved Permanently永久重定向,资源(网页等)被永久转移到其他URL
302:Found临时重定向
404:Not Found请求的资源(网页等)不存在
500:Internal Server Error内部服务器错误,无法完成请求
4.HTTP基本特征
1.无连接
TCP建立连接和HTTP无关,HTTP直接向对方发送HTTP请求即可
2.无状态:
HTTP本身是无状态的,并不会记录用户的任何信息,只进行request 与response
这样会带来较差的用户体验
因此引进了Cookie 和 Session 的技术支持
Cookie:本质是浏览器中的一个文件,分为内存级和硬盘级
Session:文件是服务器中通过sid找到的一个文件,而sid被保存到了Cookie中
3.简单快速
短链接:进行文本传输
长连接:客户端和服务器建立一次连接之后,可以在这条链接上进行多次请求/响应操作,提高通信效率
5.浅谈https
https是在传输层和应用层之间加了一层安全层(安全套接字):SSL/TLS用来加密和解密
SSL:早期非标准 TLS:后期标准版
加密:
1.对称加密(密钥1个)
2.非对称加密:RSA,公钥,私钥。通常情况下公钥用来加密,私钥用来解密
https秘钥协商过程
服务器向客户端发送一个公钥,客户端用公钥对对称密钥加密将其发送给服务器,服务器然后对其解密得到对称密钥。
对称加密:速度快,但是不安全
非对称加密:效率比较低,但是相对安全
因此通常情况下,先利用非对称加密来获取对称密钥,然后使用对称加密来实现加密解密
中间信息被篡改问题(数据摘要+数据签名(指纹)) 文本通过hash算法被设置成一段定长的字符序列(数据摘要),再用密钥对数据摘要加密形成指纹或者数据签名。
|