HTTP相关问题
目录
1.从输入URL到页面展示到底发生了什么?
2.HTTP状态码有哪些?
2.1 2XX(成功状态码)
2.2 3XX(重定向状态码)
2.3 4XX(客户端错误状态码)
2.4 5XX(服务端错误状态码)
3.HTTP 请求头中常见的字段有哪些?
4.HTTP和HTTPS有什么区别?
4.1简单介绍
4.2主要区别
4.3Https的缺点
5.HTTP1.0和HTTP1.1的区别
6.HTTP1.1和HTTP2.0有什么区别
7.HTTP2.0和HTTP3.0有什么区别?
8.URI和URL的区别是什么?
9.Cookie和Session的区别?
10.GET和POST的区别?
1.从输入URL到页面展示到底发生了什么?
-
首先,浏览器会根据我们输入的URL地址先在本地域名服务器(DNS)中查找,如果有缓存,则直接返回IP地址即可。
-
如果本地域名服务器没有缓存,则会查询本机hosts文件中看是否配有对应的IP地址,如果找到,直接返回。
-
如果hosts文件内也没有,则向网络中发起一个DNS查询,可采用递归或者迭代查询。去根、顶级、权威域名服务器上去查.....,查找到了返回给本地域名服务器,然后告诉给用户IP地址。
-
浏览器根据IP地址和端口号与目标服务器建立TCP连接,经历三次握手。
-
建立连接后(HTTP1.1为长连接),浏览器向服务器发送一个HTTP请求,请求获取网页的内容。
-
服务器收到后,处理请求,返回响应报文。
-
浏览器接收到后,解析HTML代码,获取里面的其他资源,图片等,再次发起HTTP请求,直到网页完全加载显示。
-
浏览器不需要通信时,可主动关闭TCP连接,或者等待服务器关闭请求。
2.HTTP状态码有哪些?
2.1 2XX(成功状态码)
-
200 OK:请求被成功处理。比如我们发送一个查询用户数据的 HTTP 请求到服务端,服务端正确返回了用户数据。这个是我们平时最常见的一个 HTTP 状态码。
-
201 Created:请求被成功处理并且在服务端创建了一个新的资源。比如我们通过 POST 请求创建一个新的用户。
-
202 Accepted:服务端已经接收到了请求,但是还未处理。
-
204 No Content:服务端已经成功处理了请求,但是没有返回任何内容。
2.2 3XX(重定向状态码)
-
301 Moved Permanently:资源被永久重定向了。比如你的网站的网址更换了。
-
302 Found:资源被临时重定向了。比如你的网站的某些资源被暂时转移到另外一个网址。
2.3 4XX(客户端错误状态码)
-
400 Bad Request:发送的 HTTP 请求存在问题。比如请求参数不合法、请求方法错误。
-
401 Unauthorized:未认证却请求需要认证之后才能访问的资源。
-
403 Forbidden:直接拒绝 HTTP 请求,不处理。一般用来针对非法请求。
-
404 Not Found:你请求的资源未在服务端找到。比如你请求某个用户的信息,服务端并没有找到指定的用户。
-
409 Conflict:表示请求的资源与服务端当前的状态存在冲突,请求无法被处理。
2.4 5XX(服务端错误状态码)
-
500 Internal Server Error:服务端出问题了。比如你服务端处理请求的时候突然抛出异常,但是异常并未在服务端被正确处理。
-
502 Bad Gateway:我们的网关将请求转发到服务端,但是服务端返回的却是一个错误的响应。
3.HTTP 请求头中常见的字段有哪些?
字段 | 含义 |
---|---|
Request URL | 请求地址 |
Request Method | 请求方法 |
status Code | 请求码 |
Reomte Address | 客户端主机的IP地址 |
Date | 发送日期 |
User-Agent | 浏览器身份标识字符串 |
Accept-Encoding | 支持的编码 |
Accept-Language | 支持的语言 |
scheme | 访问协议http或https |
4.HTTP和HTTPS有什么区别?
4.1简单介绍
HTTP:最广泛应用的网络通信协议,基于TCP协议,数据传输简单高效,数据传输的内容是明文。
HTTPS:HTTP协议的加强版,是运行在SSL/TLS协议之上的HTTP协议,其所有传输的内容都经过加密,一方面保证数据的安全传输,另一方面对访问者增加了安全验证。
注意:TLS是SSL的升级版,加密采用的是对称加密,通信双方共享唯一密钥K,这样代价比较低。由于需要保证密钥的保密性,在双方通信时,需要商量一个用于对称加密的密钥,但是密钥不能直接在网络通信道中传输,这样是不安全的,所以还需要采用一次非对称加密(公钥加密和私钥解密的方式)用来交换对称加密的密钥。关于密钥的信任性问题是靠CA证书解决的。
4.2主要区别
1.http和https都是无状态(就是交互之间没有记忆功能)的,而https是通过SSL/TLS协议加密的,传输数据更加的安全。
2.http默认使用的是80端口,而https默认使用的是443端口。
4.3Https的缺点
1.https的TCP握手协议会更加的费时,会耗费更多服务器资源。
2.https也并不是完全安全的,可能会受到DDOS(分布式拒绝服务攻击,使被攻击的网站服务器存放大量要响应的信息,消耗资源,使得服务瘫痪)的攻击。
3.SSL证书不是免费的,安全级别越高的费用越高。
5.HTTP1.0和HTTP1.1的区别
-
连接方式:HTTP1.0为短连接,HTTP1.1支持长连接。
-
Host头:因为DNS允许多个主机名绑定到同一个IP地址,加上Host字段就知道主机名了。
-
响应状态码:HTTP1.1在HTTP1.0的基础上新加入了大量的状态码。
-
加密:HTTP1.1可以支持SSL/TLS加密。
6.HTTP1.1和HTTP2.0有什么区别
-
多路复用:HTTP2.0在同一连接上可以同时传输多个请求和响应,在处理多个请求时更加的高效。
-
服务主动推送:HTTP2.0可以在客户端请求一个资源时,将其他相关资源一并推送给客户端,减少了客户端的请求次数。
-
二进制帧:HTTP2.0使用二进制帧进行数据传输,相较于HTTP1.1文本格式的报文更加的高效。
注意:HTTP1.1和HTTP2.0都与HTTPS有直接关系。HTTP1.1和HTTP2.0都是HTTP协议的版本,而HTTPS是在HTTP协议的基础上加入了SSL/TLS协议进行加密的协议。因此,当使用HTTPS时,实际上是在使用HTTP协议(无论是HTTP1.1还是HTTP2.0)进行加密通信。具体来说,HTTP1.1和HTTP2.0可以与HTTPS一起使用,以提供加密和安全通信。在实际应用中,许多网站使用HTTPS来保护用户的个人信息和其他敏感数据,而HTTP1.1和HTTP2.0都可以作为HTTPS协议的一部分来使用。
7.HTTP2.0和HTTP3.0有什么区别?
-
传输协议:HTTP2.0是基于TCP协议实现的,HTTP3.0采用了QUIC(UDP的升级版,在其基础上新增了加密、重传等功能)协议来实现可靠的传输。
-
安全性:HTTP2.0使用TSL协议进行加密,而HTTP3.0基于QUIC协议,包含了内置的加密和身份验证机制,可以提供更强的安全性。
-
连接建立和错误恢复:HTTP3.0相较于HTTP2.0在连接建立上更快,也有更好的错误恢复机制。
8.URI和URL的区别是什么?
-
URI是统一资源标识符,可以唯一标识一个资源,比如一张图片,一段音频。
-
URL是统一资源定位符,可以提供该资源的路径,就是如何指向这个资源。
URI准确来说是包含URL的,比如说有一张图片,他同时放在了tomcat服务器中的两个不同文件夹中,对于URI来说就是一张图片资源,而URL可以有多个,访问的文件夹路径不同,URL不同,但最终得到的就是这一张图片资源。
9.Cookie和Session的区别?
因为我学习的时候接触的是JWT,没有采用Cookie+Session这种方案,对Cookie和Session的过程只是了解。因为HTTP协议是无状态的,Session的主要作用就是通过服务端记录用户的状态,Session是在服务端的,Cookie是在客户端的,所以Cookie中不能存储敏感信息,最好是将Cookie信息加密存储然后使用到的时候再去服务器端解密。
基本认证流程如下:
10.GET和POST的区别?
-
使用场景:get请求一般用于获取或查询资源,而post请求一般用于创建和修改资源。
-
缓存:浏览器一般会对get请求进行缓存,而post请求不会缓存。
-
安全性:如果使用HTTP协议的话,其实都不安全,因为HTTP协议本身是明文传输。但相对来说POST请求比GET请求更安全一些,因为GET请求的参数通常放在URL中。
-
格式:GET请求的URL长度受到浏览器和服务器的限制,而POST请求的body大小没有明确的限制。
相关文章:

HTTP相关问题
目录 1.从输入URL到页面展示到底发生了什么? 2.HTTP状态码有哪些? 2.1 2XX(成功状态码) 2.2 3XX(重定向状态码) 2.3 4XX(客户端错误状态码) 2.4 5XX(服务端错误状态码) 3.HTTP 请求头中常见的字段有哪些? 4.HTTP和HTTPS有什么区别&…...

闲人闲谈PS之五十三——离散制造中的魔鬼--物料套裁
惯例闲话:最近和老婆大人商议买车事宜,闲人以为会陷入买油车还是电车的纠结,没想到老婆大人无比坚定,买电车。在买车这方面,老婆的想法居然比闲人超前。闲人对车定位在代步工具,2年前,对车还是印…...

Dell服务器iDRAC9忘记密码, 通过RACADM工具不重启 重置密码
系列文章目录 文章目录 系列文章目录前言一、RACADM工具二、linux环境1.解压安装RACADM工具测试RACADM工具重置iDRAC密码 Windows环境 前言 一、RACADM工具 RACADM工具 官网参考信息 https://www.dell.com/support/kbdoc/zh-cn/000126703/%E5%A6%82%E4%BD%95-%E9%87%8D%E7%BD…...
2024年Java架构篇之数据结构与算法面试题
2024年Java实战面试题_java 5 年 面试-CSDN博客 2024年Java架构篇之数据结构与算法面试题 1、判断一个数是否是2的N次方,比如2、4、8、16是6、10不是 1:01、2:10、3:011、4:100、7:0111、8:1000、15:01111、16:10000 if(n&(n-1) 0) 那么n就是2的次方 n > 1...

蓝桥杯刷题day06——平均
1、题目描述 有一个长度为n 的数组(n 是 10 的倍数),每个数ai都是区间 [0,9] 中的整数。 小明发现数组里每种数出现的次数不太平均,而更改第i 个数的代价为bi, 他想更改若干个数的值使得这10 种数出现的次数相等&…...
MySQL分区的优缺点
前言 数据库中的分区技术为处理大规模数据提供了一种有效的手段,通过将数据划分成更小的可管理单元,我们能够提高查询性能、简化数据维护并更灵活地管理存储空间。然而,在采用分区时,我们必须认真考虑分区键的选择和实施细节&…...
2023年度总结
目录 工作读书生活展望 用一百分总结这一年,给自己打80分。 这一年中中常常,坚持踏踏实实走好每一步。 工作 项目上,先后经历了「从库恢复后自动上线」、「主动切换RTO优化」、「MGR高可用统一」,以及高可用稳定性建设等。另外&…...
aspose-words在linux上安装字体
大多数情况下,使用 Aspose.Words 将 DOC 或 DOCX 文档转换为 PDF 格式。如果需要在 Linux 计算机上执行此操作,确保 Aspose.Words 以最佳准确性渲染文档。 最常见的是,需要转换的 DOC 和 DOCX 文档是在 Windows 或 Mac OS 操作系统上使用 Microsoft Word 创建的。因此,DOC…...

SpringBoot实战项目第一天
环境搭建 后端部分需要准备: sql数据库 创建SpringBoot工程,引入对应的依赖(web\mybatis\mysql驱动) 配置文件application.yml中引入mybatis的配置信息 创建包结构,并准备实体类 完成今日开发后项目部分内容如下图示 用户注册于登录部分…...

C# 信号量(Semaphore)详细使用案例
文章目录 简介信号量的工作原理使用场景使用示例其他使用实例1. 数据库连接池管理2. 文件读写同步3. 生产者消费者问题4. 打印任务队列同步5. Web服务器并发请求限制 简介 在C#中,信号量(Semaphore)是.NET框架提供的一个同步类,位…...
《Docker极简教程》--Docker基础--Docker的基本概念
在这篇文章中我们先大致的了解以下Docker的基本概念,在后续的文章中我们会详细的讲解这些概念以及使用。 一、容器(Container) 1.1 容器的定义和特点 容器的定义 容器是一种轻量级、可移植的软件打包技术,用于打包应用及其依赖项和运行环境,…...

【AIGC核心技术剖析】DreamCraft3D一种层次化的3D内容生成方法
DreamCraft3D是一种用于生成高保真、连贯3D对象的层次化3D内容生成方法。它利用2D参考图像引导几何塑造和纹理增强阶段,通过视角相关扩散模型执行得分蒸馏采样,解决了现有方法中存在的一致性问题。使用Bootstrapped Score Distillation来提高纹理&#x…...
新版MQL语言程序设计:外观模式的原理、应用及代码实现
文章目录 一、什么是外观模式二、外观模式的实现原理三、外观模式的应用范围四、外观模式应用实例银行系统的设计量化交易系统的设计 五、外观模式的代码实现 一、什么是外观模式 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个…...

Docker 搭建mysql 集群(二)
PXC方案 很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点,数据双向同步的(在任何节点上都可以同时读写) 创建MySQL PXC集群 1 安装PXC镜像 docker pull percona/percona-xtradb-cluster:5.7.21 2 为PXC镜像改名 docker tag pe…...

L1-018 大笨钟-java
输入样例1: 19:05输出样例1: DangDangDangDangDangDangDangDang输入样例2: 07:05输出样例2: Only 07:05. Too early to Dang. java import java.awt.desktop.SystemEventListener; import java.util.Scanner;public class M…...

monaco-editor布局篇(二)-自动换行
monaco-editor的换行方式,主要分为3种情况: 不换行按照编辑器宽度换行按照制定列数换行 主要受wordwrap和wordwrapcolumn控制,具体如下: 取值含义off不换行,会一直滚动on换行,文本将在视区宽度内自动换行…...
08-常用集合(容器)
上一篇: 07-使用Package、Crates、Modules管理项目 Rust 的标准库包含许多非常有用的数据结构,称为集合。大多数其他数据类型表示一个特定值,但集合可以包含多个值。与内置的数组和元组类型不同,这些集合指向的数据存储在堆上&…...
CentOS 中文乱码
CentOS 中文乱码 1、 查看自己系统有没有安装中文语言包,可使用 locale -a 命令列出所有可用的语言环境 如果有中文,则不用安装,如果没有,需要重新安装,使用 yum install kde-l10n-Chinese 2、 修改 i18n 和 locale…...
Java List中对象根据id去重,并处理重复对象的某个字段
List中对象根据id去重 一、需求二、解决 一、需求 参考文章:https://blog.csdn.net/A_Gui_Code/article/details/106978867 对在list集合中对象根据主键id去重,同时需要对重复对象的某个字段进行单独处理。 例如,对象包含字段如下, 当某个对象重复时&a…...
小周学JAVA—八股六
自动装箱和拆箱 Java中基础数据类型与它们对应的包装类见下表: 原始类型包装类型booleanBooleanbyteBytecharCharacterfloatFloatintIntegerlongLongshortShortdoubleDouble 装箱:将基础类型转化为包装类型。 拆箱:将包装类型转化为基础类…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...