计算机网络(三)http协议和https协议

http协议

无连接,无状态协议。

无连接

  1. 每一个访问都是无连接,服务器挨个处理访问队列里的访问,处理完一个就关闭连接,这事儿就完了,然后处理下一个新的
  2. 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接

无状态:是指服务端对于客户端每次发送的请求都认为它是一个新的请求,上一次会话和下一次会话没有联系

http报文结构

请求消息:请求行(request line)、请求头部(header)、空行、请求数据

响应消息:状态行、消息报头、空行和响应正文。

header字段:通用首部、请求首部、响应首部和实体首部。

请求

Accept:text/html,  application/xml可处理的媒体类型
Accept-encoding: gzip, deflate接收压缩编码方法
Accept-Language: en-US,en;zh-CN接收语言
User-agent:Mozilla/5.0浏览器信息

实体

Allow支持的http方法
Content-Encoding数据压缩编码方法
Content-Language数据语言
Content-Length数据大小
Content-type:text/html; charset=UTF-8数据的类型

请求消息如下:

响应消息如下:

 

http常见状态码

  • 1xx:提示信息,请求已接收,继续处理
  • 2xx:成功,请求被成功接收,解析
  • 3xx:重定向,url资源临时或永久移动的另一个地方
  • 4xx:客户端错误,请求信息有误
  • 5xx:服务端错误,服务器不能完成合法请求

200  OK:客户端请求成功。

301:永久重定向,表示资源已经永久移动到另一个位置。location中包含现在的URL。

302:临时重定向,表示资源临时移动到了另一个位置。

304 Not Modified:表示客户端可以使用以前请求的结果,不需要再次请求。此特性可以节省服务器流量,还可以加速客户端访问。

400:请求报文语法错误,无法识别

404 Not Found:请求资源不存在,错误的URL。

500 Internal Server Error:服务器发生的错误,一般是代码的BUG所导致的。

请求方法

  • GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
  • POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
  • PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
  • HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
  • DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
  • OPTIONS:查询相应URI支持的HTTP方法。

URI, URL, URN的定义

URI: Uniform Resource Identifier, 统一资源标识符。用来唯一标识资源,是一种语义上的抽象概念。

URL: Uniform Resource Locator, 统一资源定位符。用来定位唯一的资源, 必须提供足够的定位信息。常用的URL格式如下:协议类型://服务器地址[:端口号]/路径/文件名[参数=值]

URN: Uniform Resource Name, 统一资源名称。定义了资源的身份(命名)。

简单比喻 - URI唯一标识一个人(例如身份证), URL定义了如何访问到这个人(例如家庭地址),URN用名字标识一个人(假设所有人名字都不一样的情况下)

URI和URL的区别

URI 是用来唯一标识资源, URL 提供资源的识别方法并用着各种方法定位资源。

由于互联网上每个文件都有唯一的URL, 所以URL是一种具体的URI, 可以说URL是URI的一种实现方式。

URI和URL都定义了是什么资源(唯一标识),但URL还定义了该如何访问或定位该资源。

https协议

HTTP+ 加密 + 认证 + 完整性保护 =HTTPS

HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL(SecureSocket Layer)和 TLS(Transport Layer Security)协议代替而已。当使用 SSL 时,则演变成先和 SSL 通信,再由 SSL和 TCP 通信了。

https协议特点

  1. 内容加密:所有信息都是加密传播,第三方无法窃听。
  2. 数据完整性:具有校验机制,一旦被篡改,通信双方会立刻发现。
  3. 身份认证:配备身份证书,防止身份被冒充。

SSL/TLS协议

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。

非对称加密算法(也称为公钥加密)需要两个密钥:公开密钥(publickey)和私有密钥(privatekey);并且加密密钥和解密密钥是成对出现的。在密钥对中,其中一个密钥是对外公开的,所有人都可以获取到,称为公钥,其中一个密钥是不公开的称为私钥。发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。

数字证书:证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。

HTTPS采用的加密方式,在交换密钥阶段使用公开密钥加密方式,之后建立通信交换报文阶段则使用共享密钥(私钥)加密方式。

SSL、TLS的握手过程

  1. 客户端发送随机数x
  2. 服务端发送数字证书、随机数y
  3. 客户端发送公钥加密的随机数z
  4. 服务端接收随机数z

握手完成客户端、服务端可以使用x,y,z三个随机数生成私钥,开始使用对称加密进行通信。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值