浏览器是如何区分http和https协议的
浏览器的默认解析
我们在浏览器的地址栏中输入一个域名 taobao.com
(不要按回车), 然后将地址栏进行复制,粘贴到文本文件后,发现是 http://taobao.com/
。
这是浏览器的默认解析,其主要是完成了两件事
- 设置请求协议为
http
协议 - 将端口号默认设置为为
80
端口。
302重定向功能
我们在浏览器中,无论是输入 taobao.com
、 www.taobao.com
还是http://www.taobao.com
,最终都会显示https://www.taobao.com
。
具体的实现过程: taobao.com
和 www.taobao.com
是不同的域名,淘宝会把相似的域名都买下来,都重定向到同一个域名下。
浏览器的默认解析与重定向功能的结合
已知: http默认端口是80,https默认端口是443。
很多网站都提供https服务,为了避免用户输入http导致访问80端口出现访问不通的情况,同时也是为了与http版本的网站兼容,服务器监听80端口,对所有的80端口的访问都定向到https的url,实现方式都多种,最简单的就是使用302重定向,
HSTS
HSTS详解
有不少网站只能通过HTTPS对外提供服务。但用户在访问某个网站的时候,在浏览器里却往往直接输入网站域名。览器依然能正确的使用HTTPS发起请求。这背后多亏了服务器和浏览器的协作
解决之道:使用HSTS
既然建立HTTPS连接之前的这一次HTTP明文请求和重定向有可能被攻击者劫持,那么解决这一问题的思路自然就变成了如何避免出现这样的HTTP请求。我们期望的浏览器行为是,当用户让浏览器发起HTTP请求的时候,浏览器将其转换为HTTPS请求,直接略过上述的HTTP请求和重定向,从而使得中间人攻击失效,以规避风险。其大致流程如下:
其过程分为三步
用户在浏览器地址栏里输入网站域名,浏览器得知该域名应该使用HTTPS进行通信
浏览器直接向网站发起HTTPS请求
网站返回相应的内容
如何让浏览器直接发起https请求?
只要在服务器返回给浏览器的响应头中,增加 Strict-Transport-Security
这个 HTTP Header
,例如:
trict-Transport-Security: max-age=31536000; includeSubDomains
就可以告诉浏览器,在接下来的31536000秒(1年)内,对于当前域名及其子域名的后续通信应该强制性的只使用HTTPS,直到超过有效期为止。
参考文献
- https://blog.csdn.net/error311/article/details/108442249
- https://blog.csdn.net/gui951753/article/details/82227800
- https://zhuanlan.zhihu.com/p/25537440
浏览器是如何区分http和https协议的的更多相关文章
- (二)Fiddler抓取Firefox、Chrome浏览器上的https协议
Fiddler抓取Firefox.Chrome浏览器上的https协议 安装Fiddler后默认只抓取http协议,如果是https协议的话,浏览器就会提示"您的链接并不安全". ...
- fiddler抓取火狐浏览器上https协议请求
前言:现在很多网站采用https协议,当打开fiddler时.浏览https协议的网站会提示不安全,若使用fiddler抓取https协议的请求,则需要向浏览器导入证书,才能抓取https协议的请求, ...
- HTTPS 协议降级攻击原理
0x00 HTTPS 在传统流行的web服务中,由于http协议没有对数据包进行加密,导致http协议下的网络包是明文传输,所以只要攻击者拦截到http协议下的数据包,就能直接窥探这些网络包的数据. ...
- 老李分享:https协议
老李分享:https协议 最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如果你访问 google,查看一下地址栏 ...
- HTTP和HTTPS协议,看一篇就够了
https://blog.csdn.net/xiaoming100001/article/details/81109617 因为http请求是无状态的,所以需要三次握手.四次挥手来确定状态. 大纲 这 ...
- 理解 HTTPS 协议
英文原文:Understanding HTTPS Protocol 最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如 ...
- 【计算机网络】HTTPS协议的传输细节及过程分析
1. 介绍一下HTTPS协议? 1.1 基本概念 http默认采用80作为通讯端口,对于传输采用不加密的方式,https默认采用443,对于传输的数据进行加密传输. 1.2 密码学基础 明文: 明文指 ...
- 【网络知识之三】HTTPS协议
HTTPS是身披SSL外壳的HTTP.HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包.HTTPS使用的主要目的是提供对网站服务器的 ...
- HTTPS工作原理 HTTP协议数据结构分析 HTTP和HTTPS协议的不同之处
HTTP有以下三个缺点:无加密,无身份认证,无完整性保护,因此所谓的HTTPS,它其实就是HTTP+加密+身份认证+完整性保护.HTTPS并不是一种新的协议,在通信接口使用了SSL和TLS协议而已.H ...
- HTTP和HTTPS协议,详解
大纲 一.前言: 先来观察这两张图,第一张访问域名http://www.12306.cn,谷歌浏览器提示不安全链接,第二张是https://kyfw.12306.cn/otn/regist/init, ...
随机推荐
- 使用brew安装历史版本的几种方式
背景 在 mac osx 下, 大部分的软件都是使用 homebrew 进行管理的, 可以方便的进行软件的安装,更新,删除等等, 大部分情况下 homebrew 的仓库只会存在一份最新的软件版本, 有 ...
- JZOJ 2022.02.26【提高A组】模拟
比赛总结 考场 \(T1,T2\) 思想切了 然而... \(\text{T1}\) 飞行棋 当然要 \(dp\),然而发现后六格有后效性 姑且设 \(f_i\) 表示从第 \(i\) 格到终点的期望 ...
- JZOJ 7339.改试卷
\(\text{Solution}\) 又忘了线段树分治!! 显然维护一个上凸包 发现加点和删点可以变成限制存在时间 然后把点放在线段树上,线段树下标表示时间 加点时先把点按横坐标排序,然后就可以单调 ...
- JZOJ 3234. 阴阳
阴阳 题面 分析 个人认为是极好的题,很容易写 如果你学点分治是无奈背板的,那就做做这道题,加深你对点分治的理解 一般的,处理树上大规模统计问题,我们分治的关键是找一棵子树的重心 找到分治中心,即新一 ...
- JZOJ 4417. 【HNOI2016模拟4.1】神奇的字符串
不能算解析的解析 很神仙的题 知道做法后很容易实现 这里不写题解 推荐一个:4417. [HNOI2016模拟4.1]神奇的字符串 感谢写此博文的神犇! \(Code\) #include<cs ...
- Linux下文件实时自动同步备份
转载简书: https://www.jianshu.com/p/fc2f3ec661c0
- Linux提权之:利用capabilities提权
Linux提权之:利用capabilities提权 目录 Linux提权之:利用capabilities提权 1 背景 2 Capabilities机制 3 线程与文件的capabilities 3. ...
- Vulhub 漏洞学习之:Adobe ColdFusion
Vulhub 漏洞学习之:Adobe ColdFusion 目录 Vulhub 漏洞学习之:Adobe ColdFusion 1 Adobe ColdFusion 文件读取漏洞(CVE-2010-28 ...
- GIS若干相关的概念
投影 常用的投影坐标系: CGCS2000_3_Degree_GK_CM_111E CGCS2000_3_Degree_GK_Zone_37 CGCS2000_GK_Zone_19 Beijing_1 ...
- 从0搭建Vue3组件库(三): 组件库的环境配置
本篇文章将在项目中引入 typescript,以及手动搭建一个用于测试组件库组件 Vue3 项目 因为我们是使用 Vite+Ts 开发的是 Vue3 组件库,所以我们需要安装 typescript.v ...