http与https
1)Http和Https
1.1)Http是超文本传输协议,是明文传输;Https是具有安全性的SSL的加密传输协议。Https是共享密钥加密和公开密钥加密的混合加密机制。
1.2)http和Https的连接方式不同,端口也不一样,http是80,https端口是443
1.3)https加载时间变长,增加功耗;SSL证书要钱,流量成本变高;
2)Http网站服务器和浏览器的通信方式
Http网站浏览器和服务器之间的通信方式是通过对称加密算法实现的。为了让不同的浏览器和服务器有不同的对称加密算法,浏览器和服务器首先要进行协商,他们协商的过程是通过非对称加密算法进行的。非对称加密的公钥发送给浏览器,服务器保留私钥。为了防止在传输过程中公钥被黑客篡改,采用数字证书的方式进行传输公钥, 浏览器对公钥进行解密,核对数字证书是否被修改,确保其安全性。
2.1)对称加密和非对称加密
对称加密是加密和解密是同一把公钥,存在的问题是如何安全的把密钥发送给对方。
非对称加密 是公钥和私钥。公钥可以随意发布,自己保留私钥。发送密文的一方用公钥进行加密,接收密文的一方用私钥进行解密。
常见的对称加密算法:DES(数据加密标准),AES(高级加密标准),3DES等等。
常见的非对称加密算法:RSA(公钥加密算法),ECC(椭圆曲线加解密)。
3)HTTP的状态码
1**:信息提示,继续,请请求者继续执行操作;
2**:成功,操作被成功接收并处理;
3**:重定位,需要进一步操作已完成请求;
4**:客服端发生错误,请求有语法错误或者无法请求完成;
5**:服务器发生错误,服务器在处理请求的过程中发生了错误。
具体指令:
100 :信息提示,请请求者继续执行操作;
200:请求成功;
301:(网页)资源被转移到其他的URL之中 302:暂时重定向 304:已缓存
400:Bad Request,请求有语法错误 403:已禁用 404:(网页)资源不存在
500:内部服务器发生错误 503:服务器不可用,稍等
4)HTTP的请求方法有哪些
总共有8种,分别是:
4.1)OPTIONS
返回服务器针对特定资源所支持的HTTP的请求方法
4.2)HEAD
向服务器索取和get请求相一致的响应,只不过响应体不会被返回,返回的是响应小消息头的元信息
4.3)get
请求服务器的资源
4.4)POST
更新服务器上资源
4.5)put
向指定资源上传最新的内容
4.6)delete
请求服务器删除request-url所标识的资源
4.7)trace
回显服务器的收到的请求,主要用于测试和诊断
4.8)connect
预留给能够将连接改为管道方式的代理服务器
注意:http的请求方法是区分大小写的,如果某个请求的资源不支持所在对应的请求方法,服务器返回405 (Method not allowed);如果服务器不认识或者不支持该请求方法,返回 503 (Not Implement);
5)请求方法get和post的区别
5.1)功能:get是请求服务器的数据,post是更新服务器的数据;
5.2)get请求的数据在URL之后,Post请求的数据在HTTP请求包的包体之中
5.3)安全性:(post的安全性比get高)get 请求的用户密码直接暴漏在url上
5.4)输出数据的大小:get,受特定浏览器和服务器限制,一般为2k,post不受限制
5.5)数据包的个数
get产生一个TCP数据包,post产生两个数据包
get请求方法:浏览器发送header和data,服务器响应200
post:浏览器先发送header,服务器响应100;浏览器再发送data,服务器响应200
6)HTTP的请求报文
由请求行、请求头、空行和请求数据组成
请求行由请求方法、URL和HTT协议版本
请求头是通知服务器关于客户端的信息:以键值对的方式存储
User-Agent: 产生请求的浏览器的类型
Accpet:浏览器(客户端)可识别的内容类型列表
Host:请求的主机名
7)HTTP的响应报文
http响应报文由响应行,响应头,响应体三部分组成。
响应行主要包括
响应协议,这个与请求协议对应,比如http,
状态码200
状态码的描述OK
响应头就是一些常见的响应名对应的响应值
响应参数就是我们真正需要的从数据库中取出的数据