HTTP协议
一、
HTTP:超文本传输协议。超文本---超级文本----带超链接文本
地址:http(s)://<主机>:<端口>/<路径>
HTTP协议是可靠的数据传输协议
HTTP是无状态的协议
HTTP是典型的运行在CS模式上的
web服务器:
接受客户端连接----接收请求报文----处理请求-----访问web资源-------构造应答-----发送应答
二、HTTP请求方法
GET POST DELETE DELETE UPDATE PUT OPTIONS PATCH HEAD TRACE
1、get
获取指定的服务端资源
2、post
提交数据到服务端,如对某个数据进行修改,登录时发送账号密码
3、delete
删除指定的服务端资源
4、update
更新指定的服务端资源
三、如何指定资源呢???
1、在地址中指定
https://coding.imooc.com/class/355.html
https://coding.imooc.com/?sort=0&unlearn=0&page=2
2、在请求数据中指定
(1)请求报文:
(2)应答报文:
重定向:访问的资源可能在另一个服务器,给你返回那个服务器的地址,请客户端再访问那个服务器;
四、HTTP工作的结构
web缓存:
web代理:
CDN:content delivery network---内容分发网络
爬虫:
五、详解
HTTP是明文传输的
HTTPS(Secure)是安全的HTTP协议
http(s)://<主机>:<端口>/<路径> 443端口
1、加密模型
(1)对称加密:
(2)非对称加密:
A B 是拥有一定数学关系的一组秘钥。
私钥:私钥是自己使用,不对外公开
公钥:公钥是给大家使用,对外公开
公钥加密,私钥解密。
2、数字证书
数字证书是可信任组织颁发给特定对象的认证
3、SSL (Secure Socket Layer:安全套接层)
位于应用层和传输层之间,提供数据安全(保证数据不会被泄漏)和数据完整(保证数据在传输过程中不会被篡改)的服务,以及对传输层的数据进行加密后传输
4、过程
(1)443端口的TCP连接
(2)SSL安全参数的握手--------最重要的一步
(3)客户端发送数据,发送之前会对数据进行加密,通过TCP连接发送给服务端,服务端再进行解密
(4)服务端发送数据,同样的在发送之前会进行加密,传输给客户端,在进行解密
5、SSL安全参数握手
(1)客户端生成一个随机数1,连同协议版本,它支持的加密算法,一起发送给服务端,数据是明文的
(2)服务端生成随机数2,提供自己的数字证书,把客户端的加密算法进行确定,发送给客户端
(3)确认证书是否有效?生成随机数3,使用服务器的公钥加密随机数3,发送服务端。
只有服务端可以对随机数3进行解密,其他是不可以解密的
(4)根据随机数1,2,3和相同的算法生成对称秘钥,即可进行加密传输。
HTTPS综合使用了对称秘钥和非对称加密 。