1.HTTP协议介绍
定义:超文本传输协议,用于将Web服务端的HTML响应到本地浏览器的协议
请求报文格式:
- 请求行:请求方法 + URL + 协议/版本号
- 请求头部:浏览器告知给服务端的属性信息
- 空行
- 请求主体:请求相关的数据信息(参数等)
响应报文格式:
- 响应行:协议/版本号 + 状态码 + 描述信息
- 响应头部:服务端告知浏览器的属性信息
- 空行
- 响应主体:响应数据(html文件等)
2.常见状态码
- 400:bad requst - 通常是请求语法问题
- 403:forbidden - 认证授权未通过
- 404:not found - 资源不存在
- 500:Internal server error - 不可预期的错误
- 502:gateway bad - 收到后端无效响应
- 503:service unavaible - 无法处理客户端请求
- 504:gateway timeout - 无法收到后端响应
- 499:认为是不安全的连接,主动拒绝了客户端的连接
3.GET和POST方法区别
- 数据存储位置:Get方法放在URL中;Post方法放到body中
- 数据大小限制:浏览器对URL长度有限制
- 获取变量方式:Get方法使用Request.QueryString获取;Post方法使用Request.Form来获取变量
- 安全性:用户名和密码等参数出现在URL上存在安全隐患
4.HTTP1.1和HTTP2.0的区别
- 多路复用:连接共享机制让一个连接让可以有多个request请求,服务端通过request请求id区分后让不同的服务端进行响应,让原本的串行的请求-响应模式变为并行,提高传输处理效率
- 二进制格式:让原本基于文本格式的解析方法变为二进制格式的解析方法,以此来提高解析报文的健壮性
- header压缩:通过缓存头部字段来减少传输大小和避免重复发送header字段问题
- 服务端推送:服务端还没有收到浏览器的请求,就把所有相关资源推送给浏览器,以此提高性能
长连接:同一个TCP连接可以承载多个http请求和响应;而多路复用指的是同一个http连接可以共享
4.Cookie和Session
无状态:服务端对事务没有处理能力,面对同一个浏览器的两次请求只能处理但不会记忆(登录问题)
联系:都是会话保持技术即对事务有处理能力并且Session依赖于Cookie
区别:Cookie存储在浏览器中而Session存储在服务端
5.HTTPS协议工作流程
介绍:基于HTTP协议,通过SSL/TLS提供加密处理数据、验证对方身份以及数据完整性保护
工作流程:a) 非对称加密后的加密密钥;b)对称加密传输数据
- 建立TCP连接
- 浏览器发送http请求
- 服务端发送数字证书(公钥)
- 浏览器验证证书合法性
- 浏览器生成加密密钥
- 浏览器使用证书加密“加密密钥”之后发送给服务端
- 服务端使用自己的私钥解密之后得到“加密密钥”
- 服务端将数据加密之后发送给浏览器
- 浏览器解密之后获取响应数据
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。