http vs https

http vs https

HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

一、

http  协议基于TCP协议进行传输,默认端口是80   

https  基于TLS/SSL协议加密进行TCP传输,默认端口是443

二、特点

http协议特点:

1、简单快速

2、灵活

3、无状态,每次请求都是独立的,上一次请求和下一次请求互不相干。比如,你登录了某个网站,下一次请求理论上来说就不需要再登录了。http是无状态的,它不能知道你上一次请求已经登录过了。所以需要借助其他东西来完成这个登录认证。

  三、状态记录  -- 登录验证

  会话保持----session和cookie

  session(服务器端)  和       cookie(客户端)

当客户端发起登录请求时,携带用户名密码,服务端验证通过以后将用户的信息保存在session里面,给一个session_id,服务的session_id 返回,保存在cookie里面,客户端登录成功以后携带cookie请求

四、http版本:

1、0.9版本   只有GET方法              非持久性连接

2、1.0       POST HEAD 方法      非持久性连接

3、1.1       PUT、OPTIONS、DELETE等方法,引用了持久连接

4、2.0       效率快,吞吐快

   二进制分帧(Binary Format)- http2.0的基石

   多路复用  --  一个连接内可以处理多个请求,同时进行请求和响应

   头部压缩  --  

   优先级    --

   服务器端推流  (html,js,css)  -  index.html

   在1.1之前 ,每次请求都会新建一个tcp连接。

五、http方法:

GET     请求获取  浏览器默认参数只能放在url中 /sc?username=root&passwd=123456,不会携带body数据

POST    新增   可以携带body数据

PUT     修改

DELETE  删除

CONNECT 连接

OPTIONS 查看服务器端的参数,比如支持哪些方

六、http状态码:

1** 信息,服务器收到请求,需要请求者继续执行操作

2** 成功,操作被成功接收并处理

3** 重定向,需要进一步的操作以完成请求

    301   永久重定向

    307   临时重定向

4** 客户端错误,请求包含语法错误或无法完成请求

    400   客户端语法错误

    401   用户验证失败

    403   用户禁止访问

    404   url找不到

    405   方法不被允许

    499   client has closed connection

5** 服务器错误,服务器在处理请求的过程中发生了错误

    500 Internal Server Error 服务器内部错误,无法完成请求

501 Not Implemented 服务器不支持请求的功能,无法完成请求

502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求

505 HTTP Version not supported

七、HTTPS和HTTP的区别

HTTPS 相比 HTTP 多了一层 SSL/TLS

SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2

  HTTP 传输面临的风险有:

(1) 窃听风险:黑客可以获知通信内容。

(2) 篡改风险:黑客可以修改通信内容。

(3) 冒充风险:黑客可以冒充他人身份参与通信。

八、https建立连接的过程

1、客户端向服务端发送一个招呼报文(hello),包含自己支持的SSL版本,加密算法等信息。

2、服务端回复一个招呼报文(hi)包含自己支持的SSL版本,加密算法等信息。

3、服务端发送自己经过CA认证的公开密钥

4、服务端向CA认证机构发送自己的公开密钥(FPkey)

5、CA认证机构使用自己的私有密钥给FPkey加上签名返回给服务端

6、服务端发送结束招呼的报文,SSL第一次握手结束。

7、客户端使用FPkey对自己的随机密码串(Ckey)进行加密并发送给服务端

8、客户端首先使用CA的公开密钥对FPkey的签名进行认证,确认密钥未被替换

9、客户端发送提示报文,后续报文将用Ckey进行加密。

10、客户端发送finished报文,表示该次发送结束

11、后续是否通信取决于客户端的finished报文能否被服务端成功解密

12、服务端发送提示报文,表示他之后的报文也会用Ckey进行加密

13、服务端发送finished报文。至此SSL握手结束,成功建立SSL连接。

14、客户端开始发送http请求报文

15、建立Tcp连接,开始传输数据

16、服务端发送http回复报文

17、客户端发送断开连接报文,并断开Tcp连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值