应用层的http和https协议

HTTP和HTTPS

  • http和https是什么?
    • http 常用的协议版本
      • http/1.0
      • http/1.1改进
      • http/2.0 改进
    • http 和https有什么区别?

http和https是什么?

   HTTP(超文本传输协议)是一种用于在网络上传输超文本数据的协议。它是一种客户端-服务器协议,用于从 web 服务器传输文本、图像、音频、视频以及其他多媒体文件到 web 浏览器。

但是http是明文传输的,如果发送的有敏感信息会有安全隐患,所以推出了更加安全的https,https创建的宗旨就是提供一个安全的传输通道,他把明文信息进行了加密。

http 常用的协议版本

   下面讲解目前最为流行的http协议,以及他们各自的特点,看完这篇文章,你将会了解http各个版本的特点

http/1.0

优点:
1.简单
http的报文格式就是header + body

GET /mypage.html HTTP/1.0
User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)200 OK
Date: Tue, 15 Nov 1994 08:12:31 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html
  1. 灵活和易于扩展,他的状态码和头字段都是可以自定义扩展

缺点

  1. 无状态

   在同一个连接中,两个执行成功之间的请求之间是没有联系的,但是可以使用HTTP Cookie 使用有状态的绘=会话,这样就可以共享会话信息。服务器不会记录http的状态,所以不需要用额外的资源记录状态信息,但是有一个致命的问题就是在完成有关联性的操作时会非常的麻烦,需要每次都要对服务器进行询问,例如你在购物车下单购买物品,这些都是需要知道用户的身份信息的,这就需要每次都要询问一下用户信息

  1. 不安全(http2.0解决以下问题)

   因为他是明文传输的,很容易被截取和窃听,如果在传输的过程中,把账号密码泄露出去,那恭喜你,号就没了。
他不验证通信双方身份、有可能进入伪装网站,假如你在一个假的pdd,jd购买东西,那恭喜你,钱没了。
无法证明报文完整性都导致不安全的问题,服务器发送的消息很有可能被篡改,在信息中植入广告和弹窗等。

  1. 无连接(http1.1解决)

   浏览器的每次请求都需要于服务器建立一个TCP连接,因为每个TCP只能发送一个请求,所以会大量的创建和销毁,在这个过程中浪费了大量的时间

http/1.1改进

1. host头的处理

http1.1的报文格式凭借 Host 标头,能够使不同域名配置在同一个 IP 地址的服务器上,如果报文中没有host,会报400错误。

GET /zh-CN/docs/Glossary/Simple_header HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/zh-CN/docs/Glossary/Simple_header200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Wed, 20 Jul 2016 10:55:30 GMT
Etag: "547fa7e369ef56031dd3bff2ace9fc0832eb251a"
Keep-Alive: timeout=5, max=1000
Last-Modified: Tue, 19 Jul 2016 00:59:33 GMT
Server: Apache
Transfer-Encoding: chunked
Vary: Cookie, Accept-Encoding
  1. 更多缓存

   HTTP1.1支持更多的缓存策略,例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略

  1. 长连接

   前面我们已经了解到了,每次http请求都需要建立一个连接,创建连接的过程不但会消耗时间还会消耗资源,如果想要减少时间和资源的消耗,那就应该重用连接,所以http1.1中引用了重用连接的机制,在请求头中加入keep-live,即保持长连接,连接相应完不关闭,继续重用。注意这个长连接是有时间限制的,并且服务端有最大的连接数量,如果达到这个数量,长连接就会被关闭,http1.1 默认开启长连接

  1. 管道传输

   因为长连接的存在,发送一次请求后并不会关闭TCP连接,所以可以不等第一次请求的响应,这大大减少了请求的队头阻塞,但是服务器必须按照接受请求的顺序来处理响应,如果一个连接的请求处理较长,那么后面的请求都要排队等待,响应的队头阻塞依旧存在

http/2.0 改进

   http2对1.x完全兼容,因为他是在1.x的基础上升级的,而不是重写1.x。状态以及api在2.0的协议是一样的,并且2.0性能大幅度的提升,为什么提升?这里先埋下伏笔,等下面讲解回收

  1. 二进制分帧-http2.0的基石

   上面我们知道了2.0的性能大幅度的提升,突破http1.0的性能限制,改进传输性能,实现低延迟和高吞吐量,但是并不知道为什么,其实就是新增加了二进制分帧层,在tcp协议中,数据的传输单位是数据报。数据分成两个部分,一个是头部(header)和实际的数据部分(body)。但是在http2.0中,他把数据报的两大部分分成了header frame 和 data frame,分别是头部帧和数据帧,和http1.x对应的是header和body。帧的载体是是流,在一个流中header frame 和data frame 可以分成多个数据片进行传输。
   流,流是连接中的一个虚拟通道,他可以进行双向传输,每个流都有一个唯一整数标识符,为了区分服务端和客户端的stream,客服端发起的标识符为奇数,服务端发起的标识符为偶数,一个http2连接可以包含多个并发打开的流。

2. 多路复用

   在http1.1中,浏览器客户端在同一时间,对同一个域名下的请求有一定的限制,超过限制的数目请求将会被阻塞。这也是为何一些站点会有多个静态资源CDN的原因之一,在http2.0中就对这个问题进行优化,不用依赖多个TCP连接实现多流并行,每个数据流可以拆分成互不依赖的帧,这些可以分优先级,交错发送,最后在服务端把他们重新组装起来,多个stream在一个tcp连接发送数据,解决了客户端的队头阻塞问题端,

在这里插入图片描述

  1. 头部压缩

   在http1.1中,他的请求头存储着大量的信息,而且有时候会发送很多重复的内容,那么这就造成了很多资源的浪费,如果只发送请求头中被修改的数据,那么这个发送的内容将会大大降低。http2.0中使用encoder来减少传输header的大小,对于相同的数据,不在通过每次请求和响应发送。

  1. 服务端推送
    服务端可以对一个客户端发送多个请求,并且无需客户端明确的请求,它能把客户端所需要的资源伴随着index.html一起发送到客户端,因为没有请求和建立连接的操作,所以静态资源通过服务端的推送方式可以极大地提升速度。

  2. http2.0瓶颈

虽然http2.0通过多路复用技术提升了性能,但是又带来了新的技术瓶颈,因为所有的压力都会到一个TCP连接之中,而且TCP连接还存在队头阻塞问题,单个TCP连接丢失,会导致所有的消息受到影响。

http 和https有什么区别?

  • https需要到ca申请证书,免费证书比较少,需要一些费用来购买证书

  • http是超文本协议,他是明文传输的,https则是具有安全性的ssl加密传输协议

  • http和https连接的方式和端口不一样,http用的80端口,而https用的443端口

  • http是无状态的,https是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,比http安全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587400.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用纯注解的方式管理bean对象

前置知识: Component , Repository , Controller , Service 这些注解只局限于自己编写的类,而Bean注解能把第三方库中的类实例加入IOC容器中并交给spring管理。 其中: Component一般用于公共类 Repository 用于dao数据访问层 Service 用…

【数字图像处理】颜色空间的转换

颜色空间的转换 CMY 空间 CMY 颜色空间正好与 RGB 颜色空间互补, 即用白色减去 RGB 颜色空间中的某一颜色值就等于这种颜色在 CMY 颜色空间中的值。 { C 1 − R M 1 − G Y 1 − B \begin{cases}C1-R\\M1-G\\Y1-B\end{cases} ⎩ ⎨ ⎧​C1−RM1−GY1−B​ HSV 空…

Go项目结构整洁实现|GitHub 3.5k

一、前言 hi,大家好,这里是白泽。今天给大家分享一个GitHub 🌟 3.5k 的 Go项目:go-backend-clean-arch https://github.com/amitshekhariitbhu/go-backend-clean-architecture 这个项目是一位老外写的,通过一个 HTT…

读书笔记之人生算法(5)

算法十八关7-9 跨越出身和运气,实现富足与自由,用概率思维做好决策 7非理性 非理性:如何管住你的动物精神什么是理性?理性就是非条件反射。本杰明富兰克林曾说过如何有效说服别人:要诉诸利益,而非诉诸理性…

leetcode721. 合并账户【两种方法;并查集;dfs】

文章目录 并查集&#xff08;方法一&#xff09;dfs&#xff08;方法二&#xff09;dfs换一种写法 并查集&#xff08;方法一&#xff09; class Solution {unordered_map<string, int> index; // 每个邮箱都有一个唯一编号int root[10010]; // 并查集…

穿什么有这么重要?--装饰模式

1.1 穿什么有这么重要&#xff1f; 约会穿什么&#xff1f; "那要看你想给人家什么印象&#xff1f;是比较年轻&#xff0c;还是比较干练&#xff1b;是比较颓废&#xff0c;还是要比较阳光&#xff1b;也有可能你想给人家一种极其难忘的印象&#xff0c;那穿法又大不一样…

Vue3_2024_7天【回顾上篇watch常见的后两种场景】完

随笔&#xff1a;这年头工作不好找咯&#xff0c;大家有学历提升的赶快了&#xff0c;还有外出人多注意身体&#xff0c;没错我在深圳这边阳了&#xff0c;真的绝啊&#xff0c;最尴尬的还给朋友传染了&#xff01;&#xff01;&#xff01; 之前三种的监听情况&#xff0c;监听…

【高校科研动态】贵州师大博士生封清为一作在J. Clean. Prod.发文:中国扶贫搬迁对生态影响的量化研究——以贵州省为例

目录 1.文章简介 2.主要研究内容 3.文章引用 1.文章简介 论文名称&#xff1a;Quantifying the extent of ecological impact from Chinas poverty alleviation relocation program: A case study in Guizhou Province 第一作者及通讯作者&#xff1a;封清&#…

一文教你如何使用sngrep跟踪分析sip信令

sngrep是一个用于分析SIP信令的工具&#xff0c;它可以捕获和解码SIP信令也是一款专业的sip抓包工具&#xff0c;且可以解析tcpdump抓出来的包。 sip协议&#xff08;会话初始协议&#xff09;&#xff0c;是一种多媒体通信协议&#xff1b; sip协议的消息主体&#xff08;报文…

联系媒体要有方法莫让投稿发文章只剩一声长叹相见恨晚

曾有一位饱经世事的前辈以一句至理名言警醒世人:“人之所以领悟道理,往往不是源于抽象的道理本身,而是生活给予的实实在在的挫折教训,如同撞南墙一般的痛彻觉醒;同样,让人豁然开朗的,也不是空洞的说教,而是实实在在的人生磨砺。”这一哲理,放在我们日常工作中亦有深刻的启示作用…

ISELED氛围灯方案简介

ISELED目录 一、ISELED 介绍二、ISELED联盟三、ISELED的应用方向四、NXP在ISELED上的贡献一、ISELED 介绍 在当今汽车行业疯狂内卷的时代,各车企把更多精力花费在了车辆内部座舱的设计上,氛围灯出现其实已经有好多年,从最开始的单色氛围灯,到64色、128氛围灯,再到现在的2…

Linux系统----------探索mysql数据库MHA高可用

目录 一、MHA概述 1.1 什么是 MHA 1.2MHA 的组成 1.2.1MHA Node&#xff08;数据节点&#xff09; 1.2.2MHA Manager&#xff08;管理节点&#xff09; 1.3MHA 的特点 1.4MHA工作原理 1.5数据同步的方式 1.5.1同步复制 1.5.2异步复制 1.5.3半同步复制 二、搭建 MySQ…