一、协议简介
http、https是一种超文本传输协议,一种无状态的,以请求/应答方式运行的协议,它可以使用拓展的语义和自描述消息的格式,与基于网络的超文本信息系统灵活的互动。
二、HTTP报文形式
- 起始行:描述请求相应的基本信息。
- 头部字段集合:使用key-value,形式更详细的说明报文
- 消息正文:实际传输的数据,它不一定是纯文本,可以是图片、视频等。
1、请求头报文形式:
请求方法:如GET/HEAD/PUT/POST
请求目标:通常是一个UTL,标记了请求方法要操作的资源
版本号:表示报文使用的HTTP协议的版本
2、响应行报文格式
- 状态码:一个三位数,表示处理的结果,比如200是成功,500是服务器错误
- 原因:作为状态码的补充,帮助人理解
3、HTTP头字段
头部字段是由key-value形式,在key和value之间用“:”分隔,最后用CRLF换行表示字段结束。比如前后分离时经常遇到的要与后端协商传输数据的类型“Contect tpye:application/json”,这里key就是Contect tpye,value就是“application/json”。HTTP头字段非常灵活,不仅可以使用HOST、connection等已有头,也可以自定义,这就给HTTP带来了无限可能。
头字段注意事项:
- 字段名不区分大小写,字段名里不允许出现空格,可以使用连字符“-”,但不能使用下划线_。
- 字段的顺序没有意义,可以任意排列。
- 字段原则上不能重复,除非这个字段的语义本身允许,例如SET-COOKIE
字段类型:
请求字段:host,Referer
响应字段:Server,Data
通用字段:Content_tpye,Connection;
三、HTTPS协议
HTTPS只是在HTTP基础上增加一个SSL/TSL(安全层),然后再利用socket和tcp协议交互。
1、SSL/TSL
SSL即安全套接层,现在最新版本是2018的1.3。
其实就是利用摘要算法、对称加密和非对称加密算法实现加密。
TSL会结合使用这几种加密算法实现加密。