随心所欲系列之想到什么写什么
HTTP协议搞一下
前言
目前的大环境下,互联网已经越来越卷,希望大家保持一颗平常心,坚守自己心中的那份净土 Q~Q,学习不是为了卷。
一、http中get和post的区别
get:
- 用于向服务器获取资源,如图片,html等
- 每次查询都是幂等的
- 请求长度有限制,会把参数带在url后面 http://www.xxxxx.com/xx?xxx=yyy
- 浏览器会缓存get请求结果
- 发送数据时发送一个数据包,头和数据一起
post:
- 用于向服务器推送数据,参数放在body里面
- 浏览器不会缓存
- 发送数据时是两个数据包,一个头,一个数据
二、http和https的区别
http是一个无状态的协议,采用明文传输数据。
提示:什么叫无状态,通俗一点就是一锤子买卖,请求一应一答结束后,提裤子走人谁也不认识谁,下次来请求照样不认识你,一样得重新握手
http状态码:
- 2xx 类状态码表示成功处理了请求
- 200 OK表示正常。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。
- 204 No Content,与 200 OK基本相同,但响应头没有 body 数据。
- 206 Partial Content 是应用于 HTTP 分块下载或断电续传,表示响应返回的body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。
- 3xx 类状态码表示重定向。
- 301 表示永久重定向,资源已经不存在,改用新的 URL 再次访问。
- 302 表示临时重定向,请求的资源还在,但暂时需要用另一个 URL 来访问。 301 和 302 都会在响应头里使用字段Location,指明后续要跳转的 URL,浏览器会自动重定向新的 URL。
- 304 不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,用于缓存控制。
- 4xx 类状态码表示客户端问题
- 400 表示请求参数有问题
- 403 表示没权限。
- 404 表示资源在服务器上未找到。
- 5xx 类状态码表示服务器端的错误码。
- 500 服务器报错。
- 501 表示客户端请求的功能还不支持。
- 502 通常是服务器代理时返回的错,服务器自身工作正常,访问后端服务器发生了错误。
- 503 表示服务器炸了,宕机了。
https
https就是因为http的明文传输容易造成数据安全问题发展而来的,采用ssl/tls加密后传输。
通俗简单的说就是,采用非对称加密和对称加密组合的形式。
非对称加密:公钥加密,私钥解密,有两把钥匙
对称加密:服务端和客户端使用同一个秘钥加密解密
https中,服务端有公钥和私钥,将公钥传输给客户端,客户端拿到公钥后利用公钥随机生成一个数据a,发送给服务端,服务端用私钥进行解密获取a,然后服务端与客户端使用随机数据a进行对称加密发送数据。为了防止中间人修改公钥所以又引入了CA证书防止修改,CA数据被改验证都通过不了。
http1.0,http1.1,http2区别
http1.0
每次都要重新连接,没有压缩
http1.1
keep-alive 还有pipeline 可以不用等响应发送数据,支持断点续传
http2.0
头部有压缩,采用二进制格式,注重数据安全,基于https之上,多路复用