一、HTTP协议
1、get和post区别
- 应用场景:get一般用于对服务器资源不会产生影响的场景,比如请求网页资源;post一般用于对服务器资源产生影响的场景,比如用户登陆注册。
- 是否缓存:浏览器一般对get请求缓存,post一般不会。
- 请求长度:由于浏览器对url长度限制,所以get请求会有长度限制。不同的浏览器限制不同。
- 安全性:post相对于get请求较安全。
2、常见的content-type属性值
- application/x-www-form-urlencoded:浏览器的原生form表单
- multipart/form-data:常见的post提交方式,通常表单上传文件使用
- application/json:服务器消息主题是序列化后的json字符串
- text/xml:该种方式主要用来提交 XML 格式的数据
3、HTTP和HTTPS区别
- HTTPS协议需要CA证书,费用较高。而HTTP不需要
- HTTP协议属于超文本传输协议,明文传输。HTTPS则是具有相对安全的SSL加密传输协议
- 使用不同的传输方式,端口也不同
- HTTP协议连接简单,是无状态的。HTTPS协议是HTTP和SSL构建的加密传输、身份认证的网络协议
4、当在浏览器输入地址会发生什么?
- 解析URL
- 缓存判断
- DNS解析
- 获取MAC地址
- TCP三次握手
- (HTTPS握手)
- 返回数据
- 页面渲染
- TCP四次挥手
二、HTTPS协议
1、什么是HTTPS协议?
- 超文本传输安全协议是一种通过计算机网络进行安全通信的传输协议。利用HTTP通信,SSL/TLS来加密数据包。
2、TLS/SSL工作原理
TLS/SSL全称安全传输层协议,是介于TCP和HTTP之间的一层安全协议、
主要依赖三种算法:散列函数hash、对称加密、非对称加密
(1)散列函数hash
常见的有MD5、SHA1、SHA256。该函数特点是单向不可逆
(2)对称加密
常见的对称加密算法有AES-CBC、DES、3DES、AES-GCM等
(3)非对称加密
常见的非对称加密算法有RSA、ECC、DH等
三、HTTP状态码
1、1XX(消息性状态码)
接收的请求正在处理
2、2XX(成功状态码)
请求正常处理完毕
- 200 OK
- 204 No Content
- 206 Partial Content
3、3XX (重定向状态码)
3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。
- 301 Moved Permanently 永久重定向
- 302 Found 临时重定向
- 303 See Other
- 304 Not Modified 浏览器缓存
- 307 Temporary Redirect 临时重定向
4、4XX (客户端错误状态码)
4XX 的响应结果表明客户端是发生错误的原因所在。
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 405 Method Not Allowed
5、5XX (服务器错误状态码)
5XX 的响应结果表明服务器本身发生错误.
- 500 Internal Server Error
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout