在浏览器的地址栏中,在浏览网站时我们偶尔会注意到不同网站的开头存在**http://**或**https://**两种他们之间有着什么区别?

HTTPS 是支持加密的 HTTP。两种协议的唯一区别是HTTPS 使用 TLS(SSL)来加密普通的 HTTP 请求和响应。因此,HTTPS 比 HTTP 安全得多。那么HTTP协议又是什么呢?


HTTP协议简介

HTTP协议是HyperText Transfer Protocol(超文本传输协议)传输协议的缩写。说到超文本传输协议,首先我们需要解释下什么是==超文本协议==。

超文本(hypertext)之所以被称为超文本,是其可以通过超链接等方式指向别的如HTML、图片、音频和视频等不同于文本的文件;那什么又是==协议==呢?网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,比方说传统的红灯停绿灯行。不同厂商的生产设备,以及不同操作系统组成的计算机之间,只有遵守这样一套相同的规则才可以确保运行和通信的正常。

​ HTTP协议设计最初的目的是为了提供一种发布和接收HTML页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。


HTTP的工作原理

​ HTTP是一个基于TCP/IP通信协议来传递数据的协议I,其一般用于B/S架构,工作于为客户端(浏览器)和服务器之间进行数据交互。
浏览器作为HTTP客户端通过URI向HTTP服务端即WEB服务器发送所有请求。
典型的Web服务器有: Apache服务器 ,Nginx服务器,TomCat服务器等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

URI和URL的区别

URI:Uniform Resource Identifier 统一资源标识符
URN : Universal Resource Name 统一资源名称
URL:Uniform Resource Location 统一资源定位符

URI 是用来标示 一个具体的资源的,我们可以通过 URI 知道一个资源是什么。
URN是通过特定命名空间中的唯一名称或ID来标识资源。
URL 则是用来定位具体的资源的,标示了一个具体的资源位置。互联网上的每个文件都有一个唯一的URL。
URI、URN、URL关系如下图:

举个通俗点的栗子

我们把家庭小区位置比作URL,快递员只有8#410张三这样一个URN具体名称,才能将快递送到你的手上,而URI完成的就是这样的一个功能

实际场景下

比方说我们访问https://leetcode-cn.com/,根据这个地址我们就可以找到力扣的网页地址

但是我们假如需要访问题库里具体的某一道题目呢?https://leetcode-cn.com/problems/two-sum/ 其中后面的problems/two-sum就是定位的URN合起来就是URI的概念

HTTP连接的特点

无连接
无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
无状态
HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。(虽然目前有别的技术可以实现有状态的效果,但是HTTP协议就是没有状态的。)

什么是HTTPS协议?

​ 由于HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息
  为了解决HTTP协议的这一缺陷,需要就需要使用HTTPS协议(Hyper Text Transfer Protocol over SecureSocket Layer)安全套接字层超文本传输协议,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,通过SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信加密

HTTP和HTTPS协议之间的区别

  • 在HTTP中,URL以**“ http://”开头,而HTTPS的URL以“ https://”**开头
  • HTTP使用端口号80进行通信,HTTPS使用端口号443
  • HTTP被认为是不安全的,而HTTPS是安全
  • HTTP在应用层工作,HTTPS在传输层工作
  • 如上所述,在HTTP中,不存在加密,而HTTPS中存在加密
  • HTTP不需要任何证书,HTTPS需要SSL证书

HTTPS的工作原理

​ 现在我们知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或涉及金钱等交易网站和电子邮箱等等安全级别较高的服务都会采用HTTPS协议。
客户端在使用HTTPS方式与Web服务器通信时有以下几个*步骤**,如图所示。

(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

(5)Web服务器利用自己的私钥解密出会话密钥。

(6)Web服务器利用会话密钥加密与客户端之间的通信。

HTTPS使用中的缺点

​ 前面一直在说HTTPS相较于HTTP的优点,那HTTPS是不是就没有缺点了?

​ 实时上并不是,首先由于HTTPS在建立连接时会经历多次握手交互会导致首次连接的时间增长,延长网页的加载时间;其次由于HTTPS还需要申请SSL证书,需要花费一笔额外的费用,并且费用随着证书的功能而增长;除此以外,由于加密和解密都需要耗费大量的运算能力,会影响服务端的CPU服务性能。

计算机网络-快速搞懂HTTP和HTTPS相关推荐

  1. 一文快速搞懂Kudu到底是什么

    文章目录 引言 文章传送门: Kudu 介绍 背景介绍 新的硬件设备 Kudu 是什么 Kudu 应用场景 Kudu 架构 数据模型 分区策略 列式存储 整体架构 Kudu Client 交互 Kud ...

  2. 一文快速搞懂对95%置信区间的理解

    一文快速搞懂对95%置信区间的理解 综合知乎上各大神的解答和网络资料得到本文对95%置信区间的理解 先给出结论 最常出现的对置信区间的错误理解: 在95%置信区间内,有95%的概率包括真实参数  (错 ...

  3. 快速搞懂平面设计视觉思维的窍门

    在这个商业氛围很浓的社会中,各种设计海报让人眼花缭乱,如何脱颖而出?需要靠设计的视觉冲击力.所以做平面设计中,要掌握好视觉设计思维,才能更胜一筹.这里给大家讲几个小窍门,让你们快速搞懂平面设计视觉思维 ...

  4. 5个品牌案例,6张优质模板,帮你快速搞懂「商业模式画布」!

    新入职.新行业,新人如何快速搞懂它的业务模式?新领域.新业务,投资人如何快速搞明白一个公司?新商机.新模式,创业者如何快速一个业务的商业前景? 推荐大家使用商业模式画布,它可以让你轻松看透商业模式.对 ...

  5. 一次性搞懂 HTTP、HTTPS、SPDY、HTTP2

    本篇文章给大家带来的内容是关于一次性搞懂 HTTP.HTTPS.SPDY.HTTP2,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 作为互联网通信协议的一员老将,HTTP 协议走到今 ...

  6. HTTP 的前世今生:一次性搞懂 HTTP、HTTPS、SPDY、HTTP2.0

    作为互联网通信协议的一员老将,HTTP 协议走到今天已经经历了三次版本的变动,现在最新的版本是 HTTP2.0,相信大家早已耳熟能详.今天就给大家好好介绍一下 HTTP 的前世今生. HTTP/0.9 ...

  7. 怎么从转移特性曲线上看dibl_「科普向」这篇让你快速搞懂IGBT的静态特性

    IGBT的静态特性其实并非难以理解的东西,即便是对于外行人而言. 刚接触那会儿,看到转移特性.输出特性之类的就想溜之大吉,加之网上查询的资料一概笼统简单,只描述特性曲线所表示的关系结果,却并不解释曲线 ...

  8. 快速搞懂Lombok使用与原理

    1 简介 Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它.Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的 ...

  9. 如何快速搞懂一家公司?

    如果没有快速作为前提,你的搞懂,价值会大打折扣 一.研究一家公司需要的宏观视野 1.把握长期明确趋势 看清宏观大背景能为你搞懂公司做出铺垫,同时看清这个公司和宏观的密切程度是怎样的,也决定了需要多大程 ...

最新文章

  1. xilinx axi dma 深入开发(一)
  2. Oracle数据库案例整理-Oracle系统执行时故障-Shared Pool内存不足导致数据库响应缓慢...
  3. IOS使用Auto Layout中的VFL适配
  4. Outlook2010怎么关联邮箱 Outlook邮箱关联的教程
  5. Homebrew更换源
  6. linux下远程访问Mysql
  7. Ubuntu10.04设备未托管
  8. bat中ERRORLEVEL的使用介绍
  9. 2018.7.11 昨天晚上的列表(字典)嵌套题
  10. 微信小程序云开发教程-微信小程序的JS基础-事件响应与视图层数据获取
  11. 2023江西财经大学计算机考研信息汇总
  12. 我对于测试团队建设的意见
  13. 面试字节跳动经历。。。
  14. 数据结构复习题(一)
  15. [教程]北京迅为iMX6ULL开发板上配置 AP 热点
  16. Nginx 使用./nginx -s reload报错 [error] open() “/opt/nginx/logs/nginx.pid“ failed (2: No such file or di
  17. MySQL5.7 连接不上的解决办法(本地无法登录)
  18. python中时间转换错误:时间戳转换|带有时区的转换 如何解析ISO 8601格式的日期? 2018-06-25T20:59:31.757+08:00
  19. Java入门——while循环:求珠穆朗玛峰高度
  20. 如何包装自己的简历?(HR眼中的好简历是什么样的?/这样写简历才会有面试机会)...

热门文章

  1. linux搜索文件内容中关键字,linux系统搜索文件中关键字的位置
  2. src源dst目的ccf期刊
  3. (四)基本的SELECT语句
  4. fence_ipmilan 的一个缺陷
  5. MySQL中distinct和group by性能比较[转]
  6. 用tkinter写一个简陋版的扣一佛主陪你笑,敲木鱼功德+1(附带源码)
  7. 【CNAS篇】电子数据功能性鉴定-检验标准
  8. 2017年全国大学生电子设计竞赛河北省获奖名单
  9. 信息管理概论(自考)
  10. 抖音播放量为什么那么少?如何提升抖音账号权重?