ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

8.7笔记(http和https)

2021-08-07 20:31:22  阅读:156  来源: 互联网

标签:HTTP https 8.7 http HTTPS 服务器 浏览器 客户端 请求


http的响应过程

http和https的区别

HTTP是服务器和客户端请求和应答标准,主要用于WWW服务器传输超文本到本地浏览器的传输协议

  • 好处:
    1. 通信开销小,简单快速,传输成本低
    2. 结构简单,灵活,易于扩展。报文格式基本上都是body和header
    3. 使用灵活,允许客户端和服务器端传输任意类型的或者任意数据结构的对象
    4. 节约传输时间:多个对象只需要一个连接可传送,不需要传送一个web对象就去创建一个连接
    5. 因为是明文传输数据,方便调试
    6. 因为HTTP是无状态的,就很容易组成集群。也可以通过负载均衡转移到任何一个服务器上。
  • 缺点:
    1. 由于传输数据都是明文,所以容易被窃取数据
    2. 无法验证通信双方的身份,依然在于安全性的问题

HTTPS是以安全为目的的HTTP的通道,HTTPS的安全基础是SSL

  • 优点:
    1. 使用HTTPS可以认证对应的客户端和服务器,确保数据传输的准确性
    2. HTTPS是由SSL和HTTP构建协议的加密传输,比HTTP安全,防止数据再传输过程中不被窃取,改变,确保数据的完整性
    3. HTTPS不是绝对安全的,但是它增加了攻击者的攻击成本
  • 缺点:
    1. HTTPS在握手阶段时间略长
    2. HTTPS的连接缓存不如HTTP高效
    3. SSL提高了一定的成本
    4. HTTPS无法保证绝对的安全

不同点

  1. HTTP协议传输的数据都是未加密的,这样就使HTTP传输隐私数据很不安全。所以就有了SSL协议对HTTP传输的数据进行加密处理,也就是后来的HTTPS
  2. HTTPS需要用到ca证书,HTTP则是免费的
  3. HTTP个HTTPS的连接方式不同,HTTP使用80端口,HTTPS使用的443端口
  4. HTTP的连接简单,还是无状态的;HTTPS是由SSL+HTTP进行加密传输,身份认证

HTTPS的连接方式:

  1. 客户使用HTTPS的URL访问Web服务器,并和web服务器简历SSL连接
  2. web服务器接收到请求后,会把网站的证书信息传给客户端
  3. 客户端的浏览器和web服务器拟定SSL连接的安全等级,也就是信息加密等级
  4. 客户端和服务器达成一致的安全等级,建立会话密钥,并用网站的公钥对密钥加密,并传给服务器
  5. Web服务器利用自己的私钥解出会话密钥
  6. Web利用会话密钥和客户端进行连接

输入URL的执行过程

  1. 输入url

  2. 因为计算机只识别IP地址,所以首先要把URL解析成IP地址(DNS解析)

    DNS解析是一个递归查询的过程:

    ”www.google.com”

    • 在本地服务器查找IP地址
    • 本地域名服务器向根域名服务器发送请求
    • 本地服务器向.com顶级域名服务器发送请求
    • 本地域名服务器向.google.com域名发送请求,找到该域名。并把找到的域名返回给本机服务器
  3. TCP连接:

    HTTP协议是基于TCP协议作为传输层协议,当服务器拿到了IP地址后,客户端会和服务器建立TCP连接(三次握手)

    三次握手主要是为了防止已经失效的请求报文发送给服务器,造成浪费资源。

  4. 浏览器发送HTTP请求

    浏览器会构造http请求报文,并通过TCP协议传送到服务器的指定端口

    请求报文:

    • 请求头:描述浏览器的相关信息
    • 请求行:治党http请求的方法
    • 请求正文:当发送POST或者PUT等请求,都会存在请求正文中
  5. 服务器处理HTTP请求

    服务器处理http请求并返回响应报文

    报文包括:

    • 状态码:1XX,2XX,3XX等
    • 响应头:包含了响应的相关信息
    • 响应正文:服务器返回给了浏览器的文本信息
  6. 浏览器进行页面渲染

    浏览器接收到到服务器发送的报文,并进行html页面,渲染页面

  7. 断开TCP连接(四次挥手)

标签:HTTP,https,8.7,http,HTTPS,服务器,浏览器,客户端,请求
来源: https://www.cnblogs.com/MyBlog0626/p/15113134.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有