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综合使用了对称秘钥和非对称加密 。

 

posted @ 2019-10-30 16:45  1220x  阅读(105)  评论(0编辑  收藏  举报