公司找人做网站/信息流广告文案
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的工作原理
- 客户端请求HTTPS 网址,然后连接到服务器的443端口(HTTPS的默认端口)
- 采用HTTPS的服务器必须要有一套数字CA证书,颁发证书的时候会产生一个公钥和私钥。私钥由服务端自己保存,不可泄漏,公钥则是附带在证书的信息中,可以公开的。证书本身也附带了一个电子签名,这个签名来验证证书的真实性和完整性,可以防止证书被篡改
- 服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量信息,比如证书颁发机构信息,公司信息和证书有效期等
- 客户端解析证书并对其进行验证,如果证书是不可信机构颁发的,或者证书中的域名与实际域名不一致的,或者证书已经过期,就会像访问者显示一个警告,与其选择是否继续通信 如果证书没有问题,客户端会从服务器证书中取出服务器的公钥A,然后客户端会生成一个随机码KEY,并使用公钥A将其加密
- 客户端把加密后的随机码KEY发送给服务器,最为后面对称加密的密钥
- 服务器在收到随机码KEY之后会使用是私钥B进行解密,经过以上步骤,客户端和服务器终于建立了安全的连接,完美解决了对称加密密钥泄露的问题,后续可以使用对称加密进行通信了
- 服务器使用密钥(随机码KEY)对数据进行对称加密并且发送给客户端,客户端使用相同的密钥(随机码KEY)进行解密
- 双方使用对称加密的方式传输数据
7.在浏览器中输入www.baidu.com后执行的全过程
- 域名解析(将域名www.baidu.com变为ip地址):浏览器首先搜索自己的DNS缓存(维护一张域名与IP的对应表),若没有则搜索操作系统的DNS缓存,若没有则搜索操作系统的hosts文件。若都没有找到,则找TCP/IP参数设置中的首选DNS服务器,即本地的DNS服务器(递归查询),本地域名服务器查找自己的DNS缓存,如果没有,则进行迭代查询。将本地服务器的IP返回给操作系统,同时缓存IP
- 使用三次握手机制建立TCP连接,浏览器会以一个随机端口(1024-65535)向服务端的web程序80端口发起TCP连接
- 建立TCP连接之后发起HTTP请求
- 服务器响应HTTP请求,客户端得到HTML代码。服务器web应用程序收到HTTP请求之后,就开始处理请求,处理完成之后就返回给浏览器HTML文件
- 浏览器解析HTML代码,并请求HTML中的资源
- 浏览器对页面进行渲染,呈现给用户
8.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有什么区别
- 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是基于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协议,包含了内置的加密和验证身份机制,可以提供更强的安全性。
11.DNS域名系统
DNS域名系统,是当用户使用浏览器访问网址之后,使用的第一个重要协议,DNS解决的是域名和IP地址映射问题
在实际的应用中,有一种情况可以不必动用DNS就可以获知域名和IP地址的映射。浏览器会在本地维护一个hosts列表,一般来说浏览器要查看访问的域名是否在hosts表中,如果有的话,直接提取对应的IP地址即可,如果本地hosts列表不存在,此时DNS就开始工作了。
目前 DNS 的设计采用的是分布式、层次数据库结构,DNS 是应用层协议,基于 UDP 协议之上,端口为 53 。
DNS服务器自底向上可以一次分为以下几个层级(所有DNS服务器都属于以下四个类别别):
- 根DNS服务器:根DNS服务器提供TLD服务器的IP地址。目前世界上只有13组根服务器,我国境内目前没有
- 顶级域DNS服务器(TLD服务器):顶级域是指域名的后缀,如com,org,net,edu等,国家也有自己的顶级域,如uk,fr,ca等,TLD服务器提供了权威DNS服务器的IP地址
- 权威DNS服务器:在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的 DNS 记录,这些记录将这些主机的名字映射为 IP 地址
- 本地DNS服务器:每个ISP(互联网服务供应商)都有一个自己的本地DNS服务器。当主机发出DNS请求时,该请求被发往本地DNS服务器,它起着代理的作用,并将该请求转发到DNS层次结构中
各域名的层级关系类似于一个树状结构:
DNS的工作流程
- 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
- 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
- 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
- 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”
- 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
- 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
- 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
- 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。
至此DNS域名系统的一次完整的工作流程结束。
相关文章:

面试之HTTP
1.HTTP与HTTPS的区别 HTTP运行在TCP之上;HTTPS是运行在SSL之上,SSL运行在TCP之上两者使用的端口不同:HTTP使用的是80端口,HTTPS使用的是443端口安全性不同:HTTP没有加密,安全性较差;HTTPS有加密…...

测试框架pytest教程(3)夹具-@pytest.fixture
内置fixture Fixture使用pytest.fixture装饰,pytest有一些内置的fixture 命令可以查看内置fixture pytest --fixtures fixture范围 在pytest中,夹具(fixtures)具有不同的作用范围(scope),用于…...

GNU make系列之介绍Makefile
一.欢迎来到我的酒馆 在本章节介绍Makefile。 目录 一.欢迎来到我的酒馆二.GNU make 预览三.一个简单的Makefile四.make程序如何处理Makefile文件五.在Makefile中使用变量 二.GNU make 预览 2.1 GNU make工具会自动决定哪些程序需要被重新编译,并且执行相应的命令来…...

Java8新特性之——方法引用
文章目录 一、简介二、举例实例方法引用(实例对象::实例方法名)静态方法引用(类名::静态方法名)类成员方法引用(类名::实例方法名)构造方法引用(类名::new)数组构造方法引用…...

等保测评--安全区域边界--测评方法
安全子类--边界防护 a) 应保证跨越边界的访问和数据流通过边界设备提供的受控接口进行通信; 一、测评对象 网闸、防火墙、路由器、交换机和无线接入网关设备等提供访问控制功能的设备或相关组件 二、测评实施 1)应核查在网络边界处是否部署访问控制设备&#x…...

【Flutter】Flutter 使用 device_info_plus 获取设备的制造商、型号等信息
【Flutter】Flutter 使用 device_info_plus 获取设备的制造商、型号等信息 文章目录 一、前言二、安装和基本使用三、实际业务中的用法四、完整示例五、总结 一、前言 在这篇博客中,我将为你介绍一个非常实用的 Flutter 插件:device_info_plus。这个插件…...

Flink、Yarn架构,以Flink on Yarn部署原理详解
Flink、Yarn架构,以Flink on Yarn部署原理详解 Flink 架构概览 Apache Flink是一个开源的分布式流处理框架,它可以处理实时数据流和批处理数据。Flink的架构原理是其实现的基础,架构原理可以分为以下四个部分:JobManager、TaskM…...

软考高级系统架构设计师系列论文八十三:论软件设计模式的应用
软考高级系统架构设计师系列论文八十三:论软件设计模式的应用 一、软件设计模式相关知识点二、摘要三、正文四、总结一、软件设计模式相关知识点 软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构...

CDH集群离线配置python3环境,并安装pyhive、impyla、pyspark
背景: 项目需要对数仓千万级数据进行分析、算法建模。因数据安全,数据无法大批量导出,需在集群内进行分析建模,但CDH集群未安装python3 环境,需在无网情况下离线配置python3环境及一系列第三方库。 采取策略…...

python并行操作(基于concurrent.futures.ThreadPoolExecutor)
文章目录 一、明确自身cpu可并行的核数二、根据所有任务计算在各个核上平均跑多少任务三、最后把任务划分在不同的核上跑四、拿来主义 此为利用cpu并行计算的能力,充分利用cpu在循环时并行计算。其实也是受C并行操作的影响,如果需要C版,可以移…...

Leetcode.73矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length, n matrix[0].length;boolean[] row new boolean[m];boolean[] col…...

jdk 04 stream的collect方法
01.收集(collect) collect,收集,可以说是内容最繁多、功能最丰富的部分了。 从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合。 collect主要依赖java.util.stream.Collectors类内置的静态方…...

介绍REST API
REST (Representational State Transfer) 是一种基于 web 架构的 API 设计风格, 允许客户端应用程序通过 HTTP 请求与服务器进行交互。RESTful API就是按照REST风格设计的API。 RESTful API 的设计原则包括:使用统一资源标识符 (URI) 标识资源ÿ…...

【leetcode 力扣刷题】反转链表+递归求解
反转链表递归求解 206. 反转链表解法①:取下一个节点在当前头节点前插入解法②:反转每个节点next的指向解法③:递归 92.反转链表Ⅱ反转left到right间节点的next指向 234.回文链表解法①:将链表元素存在数组中,在数组上…...

一文读懂Redis配置,史上真香配置
文章目录 基本配置项AOF持久化配置项RDB持久化配置项淘汰策略配置项主从复制配置项鸣谢 让那些总为redis连接异常的小白指引明灯,少走弯路。为那些不知道如何进行高级配置的大佬整一杯小酒。 基本配置项 bind:用于设置Redis绑定的IP地址。默认情况下&…...

maven打出jar中动态替换占位符
使用场景: maven打出的jar中pom.xml动态替换占位符 有些时候某些公共工具jar包被项目引用后发现公共jar的pom.xml中的version依然还是占位符,例如下面 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok<…...

【Git游戏】通过游戏重新学习Git
在提交树上移动 HEAD HEAD:一个标志符号(通常情况下指向当前分支,间接指向当前最新的提交记录) 可以通过git checkout commitID从而指向提交记录 commitID 本身是一串哈希值(基于 SHA-1,共 40 位) 我们在…...

如何通过以太坊JSON-RPC方式获取ERC-20代币的信息?
目录 一、ERC-20介绍 二、ERC-20代币标准功能 1、可选功能 2、标准功能 三、获取代币信息...

线性代数的学习和整理4: 求逆矩阵的多种方法汇总
目录 原始问题:如何求逆矩阵? 1 EXCEL里,直接可以用黑盒表内公式 minverse() 数组公式求A- 2 非线性代数方法:解方程组的方法 3 增广矩阵的方法 4 用行列式的方法计算(未验证) 5 A-1/|A|*A* &…...

【C#学习笔记】匿名函数和lambda表达式
文章目录 匿名函数匿名函数的定义匿名函数作为参数传递匿名函数的缺点 lambda表达式什么是lambda表达式闭包 匿名函数 为什么我们要使用匿名函数?匿名函数存在的意义是为了简化一些函数的定义,特别是那些定义了之后只会被调用一次的函数,与其…...

百度Apollo:引领自动驾驶技术创新的先锋
文章目录 前言一、内容总结 前言 大家好,我是萝卜头不吃萝卜头,今天和大家分享一下我学习百度Apollo自动驾驶的心得。 在七月份的时候,我收到了Apollo开发者社区的邀请,进行学习Apollo自动驾驶汽车的2023星火培训训练,…...

Redis 重写 AOF 日志期间,主进程可以正常处理命令吗?
重写 AOF 日志的过程是怎样的? Redis 的重写 AOF 过程是由后台子进程 bgrewriteaof 来完成的,这么做有以下两个好处。 子进程进行 AOF 重写期间,主进程可以继续处理命令请求,从而避免阻塞主进程子进程带有主进程的数据副本。这里…...

java实现生成RSA公私钥、SHA256withRSA加密以及验证工具类
前言: RSA属于非对称加密。所谓非对称加密,需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公…...

lab7 thread
文章目录 Uthread: switching between threadstaskhints思路上下文的恢复和保存thread_createthread_schedule Using threads思路 Barrier Uthread: switching between threads 在这个练习中,你将为一个用户级别线程系统设计上下文切换机制,并实现它。 …...

接口自动化测试:mock server之Moco工具
什么是mock server mock:英文可以翻译为模仿的,mock server是我们用来解除依赖(耦合),假装实现的技术,比如说,前端需要使用某些api进行调试,但是服务端并没有开发完成这些api&#…...

用python从零开始做一个最简单的小说爬虫带GUI界面(2/3)
目录 前一章博客 前言 主函数的代码实现 逐行代码解析 获取链接 获取标题 获取网页源代码 获取各个文章的链接 函数的代码 导入库文件 获取文章的标题 获取文章的源代码 提取文章目录的各个文章的链接 总代码 下一章内容 前一章博客 用python从零开始做一个最简单…...

CEF 缓存处理:清理缓存、禁用缓存、忽略缓存
目录 一、CEF缓存处理 1、指定缓存路径 2、清理缓存 3、禁用缓存 1)、原理分析...

Android 系统桌面 App —— Launcher 开发(1)
Android 系统桌面 App —— Launcher 开发(1) Launcher简介 Launcher就是Android系统的桌面,俗称“HomeScreen”也就是我们开机后看到的第一个App。launcher其实就是一个app,它的作用是显示和管理手机上其他App。目前市场上有很…...

一个程序员的工作日记--每天就干两件事,一年后让别人刮目相看
文章目录 成功源于专注一、早上布局二、晚上复盘三、技术细节四、专注与成功五、专注的重要性六、忙碌和赚钱七、结论以嵌入式开发为例:一、早上布局二、晚上复盘三、技术细节四、专注与成功五、忙碌和赚钱六、结论在嵌入式软件开发中,我们需要按照以下步…...

Linux虚拟机安装(Ubuntu 20)
最近这段时间使用VMWare安装了一下Ubuntu版本的Linux虚拟机,在这里记录一下安装时参考的文章以及需要注意的细节 参考链接: VMware虚拟机下安装Ubuntu20.04(保姆级教程) 一、安装VMWare 下载链接:VMware Workstatio…...