面试之HTTP

news2024/9/20 18:52:06

1.HTTP与HTTPS的区别

  • HTTP运行在TCP之上;HTTPS是运行在SSL之上,SSL运行在TCP之上
  • 两者使用的端口不同:HTTP使用的是80端口,HTTPS使用的是443端口
  • 安全性不同:HTTP没有加密,安全性较差;HTTPS有加密机制,安全性较好
  • 两者消耗资源大小不一:HTTP消耗的资源较少,HTTPS由于需要加密处理,所以消耗的资源更多

2.HTTP中POST和GET方法的区别

相同点:两者都是HTTP协议中的方法

不同点:

  • get方法是用来从服务器上获取资源;post是用来向服务器提交数据的
  • get方法的参数是通过URL进行传递的;post方法的参数存放在请求头或者消息体中进行传递的
  • get方法相比于post方法更不安全,因为请求参数存在于url中,暴露在外
  • get方法在url中传递的参数是有长度限制的(实际上HTTP协议本身对长度没有限制,限制是特定的浏览器以及服务器对他的限制,不同浏览器限制的长度不同。),POST对长度没有限制。

3.Cookie和Session的区别

  • 用范围不同:cookie保存在客户端浏览器;session保存在服务器
  • 存取方式不同:cookie只能保存ASCII,session可以存储任意类型的数据
  • 有效期不同:cookie可设置为长时间保存,比如我们使用的默认登录功能;session一般有时间限制,客户端关闭或者session超时都会失效
  • 存储大小不同:单个cookie保存数据大小不能超过4k;session存储数据可远远高于cookie
  • 安全性不同:cookie将信息存储在客户端,容易遭到非法获取;session信息存储在服务器,安全新相对来说高一些。

4.HTTP常见的状态码

常见的状态码:

  • 200:服务器处理请求成功。
  • 301(永久重定向):浏览器请求的资源已经永久移动到了一个新的URL地址,浏览器会自动将请求重定向到新的URL地址
  • 302(临时重定向):请求的资源只是暂时移动到了一个新的URL地址,浏览器会在下一次请求时再次访问原始URL地址。
  • 400:客户端请求有语法错误,不能被服务器理解
  • 403:服务器收到请求,但是没有权限,服务器拒绝提供服务
  • 404(未找到):服务器找不到请求的资源
  • 500(服务器内部错误):服务器错误,无法完成请求

状态码开头代表的类型:

5.对称加密和非对称加密

对称加密:对称加密指的是加密和解密都是同一个密钥。但是这种加密方式,如果被别人获取密钥,就可以直接获取解密内容,安全性有待提升。

非对称加密:非对称加密用到两个密钥,一个公钥一个私钥。每个客户都拿着一把公钥,服务器拿着一把私钥。公钥加密私钥可以解密;私钥加密公钥可以解密,但是公钥加密公钥不能解密。

区别:对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.。

6.HTTPS的工作原理

preview

  1. 客户端请求HTTPS 网址,然后连接到服务器的443端口(HTTPS的默认端口)
  2. 采用HTTPS的服务器必须要有一套数字CA证书,颁发证书的时候会产生一个公钥和私钥。私钥由服务端自己保存,不可泄漏,公钥则是附带在证书的信息中,可以公开的。证书本身也附带了一个电子签名,这个签名来验证证书的真实性和完整性,可以防止证书被篡改
  3. 服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量信息,比如证书颁发机构信息,公司信息和证书有效期等
  4. 客户端解析证书并对其进行验证,如果证书是不可信机构颁发的,或者证书中的域名与实际域名不一致的,或者证书已经过期,就会像访问者显示一个警告,与其选择是否继续通信         如果证书没有问题,客户端会从服务器证书中取出服务器的公钥A,然后客户端会生成一个随机码KEY,并使用公钥A将其加密
  5. 客户端把加密后的随机码KEY发送给服务器,最为后面对称加密的密钥
  6. 服务器在收到随机码KEY之后会使用是私钥B进行解密,经过以上步骤,客户端和服务器终于建立了安全的连接,完美解决了对称加密密钥泄露的问题,后续可以使用对称加密进行通信了
  7. 服务器使用密钥(随机码KEY)对数据进行对称加密并且发送给客户端,客户端使用相同的密钥(随机码KEY)进行解密
  8. 双方使用对称加密的方式传输数据

7.在浏览器中输入www.baidu.com后执行的全过程

  1. 域名解析(将域名www.baidu.com变为ip地址):浏览器首先搜索自己的DNS缓存(维护一张域名与IP的对应表),若没有则搜索操作系统的DNS缓存,若没有则搜索操作系统的hosts文件。若都没有找到,则找TCP/IP参数设置中的首选DNS服务器,即本地的DNS服务器(递归查询),本地域名服务器查找自己的DNS缓存,如果没有,则进行迭代查询。将本地服务器的IP返回给操作系统,同时缓存IP
  2. 使用三次握手机制建立TCP连接,浏览器会以一个随机端口(1024-65535)向服务端的web程序80端口发起TCP连接
  3. 建立TCP连接之后发起HTTP请求
  4. 服务器响应HTTP请求,客户端得到HTML代码。服务器web应用程序收到HTTP请求之后,就开始处理请求,处理完成之后就返回给浏览器HTML文件
  5. 浏览器解析HTML代码,并请求HTML中的资源
  6. 浏览器对页面进行渲染,呈现给用户 

8.HTTP/1.0和HTTP/1.1有什么区别

HTTP/1.0 和 HTTP/1.1 对比

  • 连接方式:HTTP/1.0为短连接,HTTP/1.1支持长连接
  • 状态响应码:HTTP/1.1中新加入了大量的状态码,光是错误码就新增了24种。比如100——在请求大资源时预热,206——范围请求的标识码,409——请求与当前资源规定冲突。
  • 缓存机制:在HTTP/1.0中主要使用Hearder里的If-Modified-Since,Expires 来做为缓存判断的标准,HTTP/1.1则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。
  • 带宽:HTTP/1.0中存在一些浪费带宽的现象,例如客户端某个对象的一部分,而服务器却将整个对象都送过来,并且不支持断点续传功能;HTTP/1.1则在请求头引入了range头域,它允许请求资源的某个部分,返回码为206,这样就方便开发者自由的选择以便于充分利用带宽和连接
  • Host头处理:HTTP/1.1引入了Host头字段,允许在统一IP地址上托管多个域名,从而支持虚拟主机的功能。而HTTP/1.0没有Host字段,无法实现虚拟主机

9.HTTP/1.1和HTTP/2.0有什么区别

HTTP/1.0 和 HTTP/1.1 对比

  •  IO多路复用:HTTP/2.0在同一连接上可以同时传输多个请求和响应。这使得HTTP/2.0在处理多个请求时更加高效,减少了网络延迟和提高了性能。HTTP/1.1则使用串行的方式,每个请求和响应都需要独立的连接。
  • 二进制帧:HTTP/2.0使用二进制帧进行数据传输,二进制帧更加紧凑和高效,减少了数据的传输量和带宽消耗。HTTP/1.1则使用文本格式的报文
  • 头部压缩:HTTP/1.1支持body压缩,不支持Header压缩;HTTP/2.0支持对Header压缩,减少了网络开销
  • 服务器推送:HTTP/2.0支持服务器推送,可以在客户端请求一个资源时,将其他相关资源一并推送给客户端,从而减少客户端的请求次数和延迟。HTTP/1.1需要客户端自己发送请求来获取相关资源

10.HTTP/2.0和HTTP/3.0有什么区别

HTTP/2.0 和 HTTP/3.0 对比

  • 传输协议:HTTP/2.0是基于TCP协议实现的,HTTP/3.0 新增了 QUIC(Quick UDP Internet Connections) 协议来实现可靠的传输,提供与TLS/SSL相当的安全性,具有较低的连接和传输延迟(可以将QUIC看作是UDP 的升级版本,在其基础上新增了很多功能比如加密,重传等)
  • 连接建立:HTTP/2.0需要经过经典的TCP三次握手过程。HTTP/3.0由于QUIC特性,建立连接的时间远远小于HTTP/2.0建立的时间
  • 队头阻塞:HTTP/2.0多请求复用一个TCP连接,一旦发生丢包,就会阻塞所有的HTTP请求;由于QUIC的特性,HTTP/3.0在一定程度上解决了队头阻塞问题,一个连接建立多个不同的数据流,这些数据流之间互不影响,某个数据流发生丢包了,其数据流不影响
  • 错误恢复:HTTP/3.0具有更好的错误恢复机制,当出现丢包,延迟等网络问题时,可以更快的进行恢复和重传。HTTP/2.0还是依赖于TCP的错误恢复和重传
  • 安全性:HTTP/2.0和HTTP/3.0对于安全都有很高的要求,支持加密通信,但是实现方式不同。HTTP/2.0使用TLS协议进行加密,而HTTP/3.0基于QUIC协议,包含了内置的加密和验证身份机制,可以提供更强的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/909720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023国赛数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

【CSS Grid网格布局】常用属性,示例代码解读

Grid布局是一种二维布局系统,可以将页面划分为行和列,并将元素放置在这些行和列的交叉点上。以下是Grid布局的一些常用属性: grid-template-columns/grid-template-rows:用于定义网格的列和行的大小和数量。可以指定具体的尺寸值…

【ARM】Day6 cotex-A7核UART总线实验

cotex-A7核UART总线实验 1. 键盘输入一个字符‘a’,串口工具显示‘b’ 2. 键盘输入一个字符串"nihao",串口工具显示“nihao” uart.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_rcc.h" #include "stm3…

安卓系列机型-禁止安装某软件 防止“沉迷游戏的小孩”操作解析

如何禁止安装某软件。这里以好课帮app为例做个演示步骤说明。这个博文的目的在于可以阻止他人用手机安装你指定的一些软件。 💔💔💔首先手机上安装好课帮这个软件。打开应用详情找到包名。或者使用第三方工具打开获取这个软件的包名。记住是…

Unity 物体固定屏幕尺寸(透视模式)

物体固定屏幕尺寸 🥪效果图🍱食用方法 🥪效果图 如图所示物体远离摄像机后会被放大,靠近相机会被缩小,使得在屏幕上的大小保持不变; 🍱食用方法 导入插件后使用gameObject.SetFixedScreenSi…

c#中lambda表达式缩写推演

Del<string> ml new Del<string>(Notify);//泛型委托的实例化&#xff0c;并关联Nofity方法 Del<string> ml new Del<string>(delegate (string str) { return str.Length; });//将Nofity变更为匿名函数 Del<string> ml delegate(string str)…

15.树与二叉树基础

目录 一. 树&#xff0c;基本术语 二. 二叉树 &#xff08;1&#xff09;二叉树 &#xff08;2&#xff09;满二叉树 &#xff08;3&#xff09;完全二叉树 三. 二叉树的性质 四. 二叉树的存储结构 &#xff08;1&#xff09;顺序存储结构 &#xff08;2&#xff09;链…

港联证券|燃气板块午后走高,美能能源涨停,水发燃气大幅拉升

燃气板块21日午后快速拉升&#xff0c;到发稿&#xff0c;美能动力涨停&#xff0c;水发燃气涨超7%&#xff0c;蓝天燃气涨超5%&#xff0c;贵州燃气涨逾4%。 消息面上&#xff0c;受澳大利亚LNG工厂罢工忧虑影响&#xff0c;欧洲基准天然气价格一度大涨18%。 有报导称&#x…

音视频技术开发周刊 | 307

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 “视象新生”火山引擎视频云&AIGC技术大会邀你踏入新“视界” 8月22日&#xff0c;火山引擎视频云&AIGC技术大会即将开启&#xff01;本次大会以“视象新生”为主…

lvs-dr模式+keepalived

一&#xff0c;keepalived概述 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色的服务器&am…

如何创建和销售在线健身业务

快速轻松地创建您自己的线上健身网站&#xff01; 越来越多的人在家健身&#xff0c;在线健身业务也随之快速增长。 虽然这个生意很红火&#xff0c;但是真的像看起来那么容易上手吗&#xff1f; 有了MemberPress&#xff0c;确实如此&#xff01; 在这篇文章中&#xff0c…

【李宏毅机器学习】注意力机制

输出 我们会遇到不同的任务&#xff0c;针对输出的不一样&#xff0c;我们对任务进行划分 给多少输出多少 给一堆向量&#xff0c;输出一个label&#xff0c;比如说情感分析 还有一种任务是由机器决定的要输出多少个label&#xff0c;seq2seq的任务就是这种&#xff0c;翻译也…

Vue.js知识点学习的一点笔记

一、虚拟DOM 1、原生JS是命令式编程&#xff0c;当渲染在页面的数据发生一点点变化&#xff0c;需要整个重新渲染一编。vue.js渐进式框架有个虚拟DOM的概念&#xff0c;运用diff算法&#xff0c;比较新旧数据&#xff0c;相同的数据不变不重渲染&#xff0c;不同的部分新数据…

CAD VCL Multiplatform Crack

CAD VCL Multiplatform Crack CAD VCL多平台是在Delphi和CBuilder中开发应用程序的一个组件。它允许创建、可视化、导入、导出、转换和打印图形。开发人员可以访问实体的属性。CAD VCL多平台支持大量矢量和3D格式&#xff0c;包括AutoCAD DWG/DXF、HPGL、STEP、IGES、STL、SVG、…

Excel带数值的计算公式

问题描述 如图&#xff0c;想实现在第三列单元格中实现带数值的计算表达式 解决方法 单元格 & "/" & 单元格 & "" & TEXT(单元格/单元格, "0.00%")& 为简单的 与 符号 最后设定单元格数值与格式&#xff08;保留两位小数…

[Mac软件]AutoCAD 2024 for Mac(cad2024) v2024.3.61.182中文版支持M1/M2/intel

下载地址&#xff1a;前往黑果魏叔官网 AutoCAD是一款计算机辅助设计&#xff08;CAD&#xff09;软件&#xff0c;目前已经成为全球最受欢迎的CAD软件之一。它可以在二维和三维空间中创建精确的技术绘图&#xff0c;并且可以应用于各种行业&#xff0c;如建筑、土木工程、机械…

天锐绿盾安全U盘系统

安全U盘系统 01 简介 天锐绿盾安全U盘系统&#xff0c;是一款致力于保障U盘数据内容安全的产品。通过严格身份认证、便捷安全的密保机制、智能的U盘锁定或自毁设置、详细的文件操作日志、文件粉碎、设置还原等&#xff0c;天锐绿盾安全U盘系统为您U盘的数据保驾护航&#xff0…

2023年京东儿童智能手表行业数据分析(京东销售数据分析)

儿童消费市场向来火爆&#xff0c;儿童智能手表作为能够实现定位导航&#xff0c;信息通讯&#xff0c;SOS求救&#xff0c;远程监听&#xff0c;智能防丢等多功能的智能可穿戴设备&#xff0c;能够通过较为精准的定位功能和安全防护能力保障儿童的安全&#xff0c;因而广受消费…

子集-回溯方法

class Solution {//题解思路//LinkedList<Integer> path new LinkedList<>(); List<List<Integer>> results new ArrayList<>();public List<List<Integer>> subsets(int[] nums) {//主方法中调用方法同时传入指定的参数初始值bac…

酷开科技大屏营销,锁定目标人群助力营销投放

近日&#xff0c;中科网联发布《2023年中国家庭大屏白皮书》&#xff0c;数据显示智能电视近三年内使用人群增长平稳。全国4.94亿家庭户中&#xff0c;智能大屏渗透率近九成。不仅如此&#xff0c; CCData研究预测&#xff0c;2025年中国智能电视渗透率将达到95%以上。这与三年…