一、HTTP请求过程

1、浏览器根据域名解析IP地址

什么是DNS?

域名系统(DNS)是因特网的电话簿。DNS将域名转换为IP地址,以便浏览器可以加载Internet资源。

DNS查找:

1、首先搜索DNS浏览器缓存,有次域名且没有过期则解析成功。

2、系统缓存,第1步无法解析则浏览器会搜索操作系统自身的DNS缓存。

3、路由器缓存,第2步未找到则会向路由器发送查询请求。

4、ISP(互联网服务提供商)DNS缓存:如果在路由缓存也没找到,最后查ISP缓存DNS的服务器。

2、浏览器与web服务器简历TCP连接

3、发送http请求

http请求报文 = 请求行+请求头+空行+请求数据

请求行=请求方法+url+http协议版本

4、服务端响应http请求,浏览器得到html代码

http响应报文=状态行+响应头部+空行+响应数据

5、浏览器解析html并请求数据

6、关闭TCP连接,浏览器对页面进行渲染

二、https请求过程

为什么要使用https呢?

http简单快速,但由于明文协议,不会对数据进行加密,容易被黑客攻击,不适用于敏感信息的传播。

1、客户端发起https请求,连接到服务器的443端口

2、服务端将非对称加密的公钥传递给客户端,以证书的形式回传到客户端

3、客户端接受公钥进行验证,如果有问题则请求无法继续,如果没有问题客户端随机生成一个私钥作为client key,使用公钥对client key进行非对称加密

4、第二次请求,将加密的client key传递给服务器

5、服务器使用私钥进行解密,得到client key,使用client key对数据进行对称加密

6、将加密数据传递给客户端,客户端解密

正文数据量大,适用于对称加密,速度快但安全级别低

对私钥进行加密,私钥数据量小,安全要求高

为验证正确的交互方,用证书保证公钥安全性

Http和https请求过程相关推荐

  1. HTTPS 请求过程

    一.HTTPS 加密过程 概念 HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与 Web 服务器之间的应用层通信协议 . HTTPS ...

  2. java证书验证失败_Java 跳过 HTTPS 请求过程中证书验证问题

    受益于谷歌和苹果对 HTTPS 的强制升级要求,服务已经全面升级了,安全性提高的同时也引起了新的问题. 由于 HTTPS 证书还是很贵的,所以各种测试环境上各种非法证书,通过浏览器访问的时候可以直接选 ...

  3. 关于使用https请求微信乱码问题

    请求微信的时候返回乱码,一般是在https请求过程中修改为: out = new PrintWriter(new OutputStreamWriter(httpsConn.getOutputStrea ...

  4. Network 【HTTPS请求/AFN】

    HTTPS请求过程 如下图: ① 客户端输入网址https://www.domain..com,连接到server的443端口.     ② 服务器返回一个证书(包含公钥.和证书信息,如证书的颁发机构 ...

  5. Android 使用自带的HttpClient进行https请求出现403的解决过程记录

    2019独角兽企业重金招聘Python工程师标准>>> 出现的过程 最近在用程序模拟一个web站的https登录,然后进行一些后续操作的小玩意.先使用java程序写测试代码,测试通过 ...

  6. 一次完整的http的请求过程与https的实现

    一次完整的http请求过程: (1)发起请求建立连接:  三次握手 接收请求或拒绝请求 (2)接受请求 来自网络的请求报文中对某资源的一次请求过程: 并发访问响应模型(Web I/O); 单进程I/O ...

  7. iOS使用自签名证书实现HTTPS请求

    原文链接:http://www.jianshu.com/p/e6a26ecd84aa 由于苹果规定2017年1月1日以后,所有APP都要使用HTTPS进行网络请求,否则无法上架,因此研究了一下在iOS ...

  8. iOS 用自签名证书实现 HTTPS 请求的原理实例讲解

    在16年的WWDC中,Apple已表示将从2017年1月1日起,所有新提交的App必须强制性应用HTTPS协议来进行网络请求.默认情况下非HTTPS的网络访问是禁止的并且不能再通过简单粗暴的向Info ...

  9. 图解HTTPS建立过程

    阅读目录 准备工作(对应图中prepare1234) 发起链接 最后 关于网络安全加密的介绍可以看之前文章: 1. 网络安全--数据的加密与签名,RSA介绍 2. Base64编码.MD5.SHA1- ...

最新文章

  1. Python设计模式-职责链模式
  2. 利用openssl签署多域名证书
  3. openpose_net随机搜索(维度搜索)网络源代码
  4. 风暴事件处理器–每个工作者的GC日志文件
  5. leetcode738. 单调递增的数字(贪心)
  6. unsigned int mysql_mysql 中int类型字段unsigned和signed的探索
  7. LeetCode 662. 二叉树最大宽度(递归)
  8. jQuery教程04-jQuery_this选择器
  9. 对抗机器学习(Adversarial Machine Learning)发展现状
  10. [置顶] 【cocos2d-x入门实战】微信飞机大战之六:子弹层的处理
  11. wowza拉流和推流接口备忘
  12. python答题系统设计
  13. 3月16日—3月20日四年级课程表
  14. go 语言最详细的入门教程
  15. Stay hungry. Stay foolish.
  16. 《控制论导论》读书:变异度-传输变异度
  17. 各个框架原理总结归纳
  18. xmanager5链接linux配置,使用Xmanager连接CentOS 5.5
  19. 微博舆情 之 数据获取
  20. 端到端与点到点的区别

热门文章

  1. windows查看tomcat版本信息
  2. 树莓派 天猫精灵智能灯泡_智能灯泡即使在关闭时也会用完电吗?
  3. oracle 表变化监控,oracle 怎么 监控数据变化
  4. java程序员面试自我介绍
  5. shadow acne(阴影失真)和peter panning(阴影悬浮)
  6. 修改http默认的80端口为其它端口
  7. C#中Math函数简介
  8. linux启动zabbix服务,zabbix监控Linux系统服务的流程
  9. 使用Docker搭建RAP2(技术文档管理私服)
  10. 华为南研所提前批面试(2015年8月22日)