1.问题

拿淘宝来说事。

在浏览器中通常人们输入淘宝的网址有taobao.com www.taobao.com http://www.taobao.com

而最终浏览器中的显示的网址是https://www.taobao.com,这是怎么实现的呢?

2.taobao.com -> www.taobao.com

taobao.com 和www.taobao.com是不同的域名,淘宝会把相似的域名都买下来,都定向到同一个域名下。

当输入taobao.com 返回的是302重定向,使浏览器访问www.taobao.com

而百度的实现方式的通过返回 刷新元信息 http://www.baidu.com/“>

使浏览器刷新到www.baidu.com,实现原理大抵相似。

3.http://www.taobao.com -> https://www.taobao.com

http默认端口是80,https默认端口是443。

很多网站都提供https服务,为了避免用户输入http导致访问80端口出现访问不通的情况,同时也是为了与http版本的网站兼容,服务器监听80端口,对所有的80端口的访问都定向到https的url,实现方式都多种,最简单的就是使用302重定向,将其重定向到https://www.taobao.com

这实现了http->https,但是不能每次都重定向,http协议实现了一个叫做HSTS机制。返回的302报文中有这样一条

Strict-Transport-Security: max-age=31536000\r\n

其含义是强制浏览器在max-age到期之前,把所有的http://www.taobao.com自动转换成https://www.taobao.com

是浏览器实现的url转换,不用每次访问两次服务器,一步到位。这样避免了302跳转80->443的中间人劫持的问题。所以之后每次访问就不会出现302了,只有第一次会出现。

小结

通过上面的案例可以知道,浏览器默认的端口一直都是80端口,也就是说默认情况下它是走的http协议,那么为了让它通过https协议来访网站,服务器实际上做了这些事情。
1.使用http协议并监听80端口,等待浏览器的访问.
2.在监听的80端口上设置url重定向,指向监听端口为443的https协议的网站
3.通过这样一种方式就可以实现网站地址的重定向了。

因此,即使你输入http://www.baidu.com:80,做了重定向的服务器也会将此url修改为https://www.baidu.com:443。也就是说,实际判断的过程是由服务器来保证的,浏览器的默认端口一直都是80端口。

输入网址的时候,浏览器是如何判断你是http协议还是https协议的相关推荐

  1. cordova 某个页面强制横屏_小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?...

    老刘 1前言 这篇文章是应网友之邀所写,主要描述一下我们访问网站时, 从输入网址到最后浏览器呈现内容,中间发生了什么. 今天的文章主要专注于应用层,我拿了一个很简单的网络结构来讲.假定本机已经获取了I ...

  2. 输入网址后,浏览器从访问服务器到呈现网页的过程

    当你输入一个网址的时候,实际会发生什么? 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理 ...

  3. http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎

    TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...

  4. 在浏览器中输入网址后的流程

    1.浏览器发起DNS查询请求 在广域网中是基于IP地址进行通信的.但通常客户访问的是一个网址,为此需要先得到网址对应的IP地址,这就需要域名服务系统将域名转换成IP地址.在客户端浏览器中输入网址时,浏 ...

  5. 【web】HTTP(s)协议详解(重点:HTTPS 的加密过程浏览器中输入网址后,发生了什么?)

    [大家好,我是爱干饭的猿,本文介绍应用层HTTP协议.HTTPS协议.当你在浏览器中输入网址后,到底发生了什么事情?HTTPS 如何进行的加密?对称加密.非对称加密.CA证书又是什么? 后续会继续分享 ...

  6. win10中谷歌浏览器输入任何字符导致浏览器崩溃的解决方法

    win10中谷歌浏览器输入任何字符导致浏览器崩溃的解决方法 最近在使用谷歌浏览器的时候,偶尔会用百度等查询资料,如果是点击标签页直接跳转不会出现任何问题,但是一旦有输入的时候,不管是在百度等搜索栏中输 ...

  7. 浏览器输入网址到浏览器渲染页面的过程

    1) 在客户端浏览器中输入网址URL. 2) 发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址. 3) 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接. 4) 客户端浏览器向对 ...

  8. 在浏览器中输入网址总是打开同一个网站怎么回

    我们经常使用浏览器来访问不同的网站,但是有用户发现自己无论在浏览器中输入怎样的网址,打开的同一个网站,这是怎么回事?小编认为应该是用户浏览器被劫持引起的.那么小编下面就给大家讲讲解决的办法. 操作步骤 ...

  9. 浏览器输入网址发生了什么?

    引言:昨天接到一个电话面试,其中有个问题:浏览器输入网址之后发生了什么?之前没有具体了解过,只是以web开发经验进行理解, 只是知道记得大学计网 DNS协议作用,进行域名解析得到服务器 IP地址,以下 ...

  10. dns域名解析过程——从浏览器输入网址到页面显示的中间过程

    BEGIN: 一.域名 1.域名(domain name)也叫做网域,是英特网上的一个服务器或者一个网络系统的名字,域名具有唯一性,在传输数据时作为定位标识,全球没有重复的域名.域名的形式是由若干个字 ...

最新文章

  1. 偏度与峰度的正态性分布判断
  2. MongoDB记录操作日志的Base类实现
  3. pytroch 数据增量 transforms的二十二个方法
  4. localhost 已拒绝连接_MySQL连接错误:Access denied for #x27;root#x27;@#x27;localhost#x27;
  5. gitHub上传项目
  6. 更改重做日志(redolog)文件的大小
  7. 湖北警方打掉一制贩假酒团伙 涉案金额1.6亿元
  8. Spark internal - 多样化的运行模式 (下)
  9. mongoDB学习--建库、删库、插入、更新
  10. js 实现pdf在线阅读
  11. CRC校验算法详解及代码实现
  12. f1c100A运行linux,荔枝派 Nano 全志 F1C100s 编译运行 Linux 笔记
  13. 预测大盘最准确的指标_预测大盘最准确的指标-图讯阅读基地
  14. 铁路CAD设计辅助软件V2.0
  15. 会议室预约系统(小程序+web端管理系统)2020.11.11-2021.02.11
  16. 如何检测显卡类型和OpenGL版本
  17. Intent传递数据的方法
  18. 电机学习笔记 无刷电机控制6步换相
  19. 互联网电视变身哄娃神器:YOYO搜片真方便
  20. 如何使用Arduino开发板连接NEO-6M GPS模块

热门文章

  1. 机器学习11-不平衡数据之采样
  2. tensorflow小案例
  3. 两个概念模型及算法之间的关系
  4. 面向对象之自动生成助记码
  5. 技术改变世界以及减速慢行
  6. 34线性映射01——映射的概念和性质
  7. byte 类型_Go 语言string 也是引用类型
  8. python爬取内容_Python爬取小说内容
  9. php 工厂模式作用,PHP工厂模式的好处概述
  10. Android 控件系列篇