网站添加标签云,百度百家号官网,网站建设用什么,抖音seo软件工具一、简述HTTP协议
HTTP底层是TCP实现#xff0c;TCP是一个可靠的传输层网络协议#xff0c;但是可靠性不是安全性——可靠但不安全
1、为什么TCP可靠#xff1f;UDP不可靠#xff1f;
可靠指的是源和目标可以相互访问以及确保数据的传输顺序#xff0c;我能通过IP端口访…一、简述HTTP协议
HTTP底层是TCP实现TCP是一个可靠的传输层网络协议但是可靠性不是安全性——可靠但不安全
1、为什么TCP可靠UDP不可靠
可靠指的是源和目标可以相互访问以及确保数据的传输顺序我能通过IP端口访问你主机进程你也能通过我提供的IP端口访问我的主机进程这样才算建立了可靠的连接也是握手的过程。
而UDP是没有建立握手的我能通过伪造一个IP去访问你UDP是不关心对方是否是真实的目标IP哪怕反向访问访问不到。
2、HTTP的请求
Http1.X它是单纯的文本格式请求只能通过ascii码传输其他字符比如汉字也会被转义成ascii的形式比如你好会被转译成%E4%BD%A0%E5%A5%BD的ASCII码
它分为请求行、请求头、请求体三部分
POST /submit HTTP/1.1 -- 请求行
Host: example.com -- 请求头
Content-Type: application/x-www-form-urlencoded charsetGBKnameJohnDoeage30 -- 请求体
消息头后需要添加一个完全没内容的空行然后才是消息体
可以看出我用的字符集是GBK要是不指定的话用GBK编码服务器如果不指定就会使用默认UTF-8去解码导致乱码
3.请求方和响应方确认字符集
我给你发消息用的UTF-8我不告诉你你不知道用什么解码因为字符被变成Ascii形式了需要通过字符集解码默认的都是UTF-8
比如在请求和响应头中都携带如下信息就可以双方都明确字符集
Content-Type: application/json; charsetUTF-8
4.请求头、响应头、实体头
请求头是请求时使用的响应头是响应时用的而实体头则是都可以使用的比如请求和响应中都可以指定Content-Type等头信息
当然也可以自定义头部信息比如加个abc: 123456但是这种自定义头只能客户端服务端自定义规则解析后什么作用所以它可以是请求头、响应头也可以是实体头你自由发挥。
POST /submit HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded charsetGBK
abc: 123456nameJohnDoeage30 -- 请求体
二、HTTPS协议简述
1、如何变得安全
废话加密不就变得安全了。
的确它在建立连接时和传输数据时分别进行了加密操作建立连接时用了非对称加密服务器通过证书机制去颁发给客户端客户端拿到公钥后加密连接请求发给服务端服务端用私钥可以解密那么OK安全连接已经建立。
流程草图 2.公钥私钥、会话密钥
公钥私钥是在建立连接时用的非对称加密的方式
会话密钥是在建立完连接后后续都使用对称加密进行数据的客户端加密服务端解密用
(对称加密就是加密解密密钥相同非对称加密就是分公钥私钥公钥交给用户私钥不做公开公钥加密的数据只能私钥解密私钥加密的东西只能公钥解密公钥加密的东西是用公钥解密不了的相当于你和你朋友都有锁头但是钥匙是交换的你自己无法打开自己那把锁)
三、POST为什么比GET安全
1.GET请求和POST的本质区别
GET请求是消息体不携带参数
POST是消息体携带参数
2.安全只是相对的POST也不安全
由于GET请求是把参数加在消息行上代理服务器、浏览器、服务器日志可能都会留下痕迹因为它们大多数都会保留请求行但是请求体的数据除非特殊设定不然一般不会去存储它们但是HTTPS形式下请求会被全部加密这种安全性和GET、POST无关与其纠结GET、POST谁安全不如上HTTPS。