关于HTTP/HTTPS

关于HTTP/HTTPS虽然很熟悉,但是其中原理自认为理解还是不够深入。在网上也看了许多关于HTTP/HTTPS的,这里加上自己理解总结了一下常遇到的问题,顺便巩固一下,方便以后忘记了来查看。

一、HTTP

HTTP(Hypertext Transfer Prtcl)超文本传输协议是基于TCP/IP协议的应用层协议,主要规定了客户端和服务端之间的通信格式,默认80端口(浏览器默认)。

请求报文格式

<method><request-URL><version>
<headers>

<entity-body>

响应报文格式

<version><status><reason-phrase>
<headers>

<entity-body>

这里记录几个请求头

Accept:
指定客户端能接收的内容类型
Accept:text/plain,text/html

Connection:
表示是否需要持久连接 // HTTP 1.1默认进行持久连接
Connection: close

Referer:
先前网页的地址,当前请求网页之前,告诉服务器来源

Cookie:
发送请求时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
Cookie: role=user;ssid=1

HTTP返回状态码

1xx(临时响应)
表示临时响应并需要继续执行操作的状态码。

2xx(成功状态)
表示成功处理了请求的状态码。

3xx(重定向)
表示要完成请求,需要进一步操作。

4xx(请求错误)
这些状态代码表示请求可能出错,客户端请求出错。

5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。

二、HTTPS

HTTPS (HyperText Transfer Protocol over Secure Socket Layer)可以理解HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层。

流程:

  • 客户端发起 SSL 握手消息给服务端要求连接
  • 服务端将证书返回客户端
    证书包含:
    (1)颁发机构信息
    (2)公钥
    (3)公司信息
    (4)域名
    (5)有效期
    (6)指纹
  • 客户端严重证书是否合法,不合法会提出警告,将是否继续通讯的决定权交给用户选择 ( 注 意,这里将是一个安全缺陷 )。如果检查无误或者用户选择继续,则客户端认可服务端的身份。
  • 服务端要求客户端发送证书,并检查是否通过验证。失败则关闭连接,认证成功则从客户端证书中获得客户端的公钥。到此,服务器客户端双方的身份认证结束。

(协商加密算法)

  • 客户端发送协商请求给服务端, 其中包含自己支持的非对称加密的密钥交换算法 , 数据签名摘要算法  , 加密传输数据的对称加密算法,以及加密密钥的长度。 服务端接收到消息之后,选中安全性最高的算法,并将选中的算法发送给客户端,完成协商。
  • 客户端生成随机的字符串,通过协商好的非对称加密算法,使用服务端的公钥对该字符串进行加密,发送给服务端。
  • 服务端通过私钥对随机数解密,对后通过客户端发送的随机数作为密钥形成对称加密算法,对返回结果加密后传输。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值