http协议是基于TCP/IP协议的一个应用层协议。
它是无状态且无连接的。 无状态: http不保存客户端的任何行为,也不保存客户端的任何数据,每一新的请求,它都会有新的响应,减少服务器的消耗。 无连接: http每次连接只处理一个请求,请求处理完就断开连接,而不是持续连接持续处理请求。
http请求报文: 请求行(请求方法+url)、请求头、请求体。 http响应报文: 响应行(http版本号+http状态码)、响应头、响应体。
1、post:请求的参数不会在地址栏显示,比较安全且传输的数据较多,不会缓存在浏览器上。 2、get:请求的参数会在地址栏显示,不安全且传输的数据受限,数据会缓存在浏览器上。 3、head:向服务器提交获取某些资源的请求,不会回传资源内容部分,常被用于客户端查看服务器性能。 4、put:在向服务器提交数据,并且制定了资源存放的位置。 5、delete:删除某个资源。 6、commit:和head差不多,主要也是用来检测服务器的性能。 。。。
1、200:成功 2、404:找不到资源 3、403:没有权限 4、202:请求成功,但是没有处理 5、204:处理了请求,但是没有返回任何数据 6、301:客户端访问的页面,已经被永久地转移到其他地方了,永久重定向 7、500:服务器错误 8、502:gateway网关错误 9、503:服务器暂时超载或者在维护
https是http协议+SSL/TLS协议组成。它采用对称加密和非对称加密的形式进行数据的传输,它对数据进行对称加密,对进行对称加密的密钥进行非对称加密。
私钥 自己私有的密钥,这个密钥不能泄露。
公钥 这个密钥可以泄露给任何人。
密钥 指进行加密操作的参数。
对称加密 也称私钥加密,就是说加密解密用的都是同一个密钥。
非对称加密 也称公钥加密,也就是说加密解密用的是两个密钥,一个是私钥一个是公钥。
HTTPS通信过程 1、客户端发送https请求,连接到服务器的443端口。
2、服务端有两个密钥,一个是私钥一个是公钥。服务端向客户端发送CA证书,里面包含持有人信息和公钥等信息。
3、客户端收到CA证书后,对这个证书进行检查,如果不合格则https传输中断,如果合格,客户端就会生成一个随机数作为私钥,这个私钥就是用于对传输的数据进行对称加密的密钥。公钥对私钥进行非对称加密形成密钥,然后客户端发送第二次https请求,将这个密钥发送给服务端。
4、服务端接受这个密钥后使用私钥对其进行非对称解密得到客户端的私钥,再用这个私钥对响应的数据进行对称加密,然后将密文响应给客户端。
5、客户端收到密文后,用私钥对其进行对称解密,得到数据,整个https传输过程完成。
1、http1.0默认使用短连接,是无状态、无连接的。 2、http1.1默认使用长连接,connection:keep-alive,它实现了在一个TCP连接可以处理多个请求,一定程度上减少了每次请求都要建立连接释放连接的开销。 3、http1.0存在带宽浪费的现象,比如客户端只需要某个对象的一部分,服务器则会发送整个对象,http1.1支持只发送header部分而不带任何body部分。 4、http1.0认为一个服务器绑定一个ip,因此请求消息中的URL没有传递主机名,但是现在有虚拟机存在,所以http1.1支持host域,请求和响应都带有主机名。 5、http1.1提供了更多处理缓存的策略。
1、http2.0引入了多路复用IO技术,支持同一个连接处理多个并发请求,http1.1也可以但是得建立多个连接,开销过大。