【基础类】—HTTP协议类
一、HTTP协议的主要特点
- 简单快速:每个资源URI是固定的,访问某个资源输入URI即可
- 灵活:在每一个HTTP协议中,请求头部分有一个数据类型,通过一个HTTP协议可以完成不同的数据类型传输
- 无连接:连接一次就会断开,不会保持连接
- 无状态:客户端和服务端连接,服务端没有办法通过两次连接区分客户端的身份,因为它没有客户端的身份信息
二、HTTP报文的组成部分
- 请求报文
1-1. 请求行:http方法、页面地址、http协议、以及版本
1-2. 请求头: key:value 告诉服务端我需要哪些类型的内容
1-3. 空行: 区分开请求头和请求体
1-4. 请求体 - 响应报文
2-1. 状态行
2-2. 响应头
2-3. 空行
2-4. 响应体
三、HTTP方法
- GET → 获取资源
- POST → 传输资源
- PUT → 更新资源
- DELETE → 删除资源
- HEAD → 获得报文首部
四、POST和GET的区别
- GET在浏览器回退时是无害的,而POST会再次提交请求
- GET产生的URL地址可以被收藏,而POST不可以
- GET请求会被浏览器主动缓存,而POST不会,除非手动设置
- GET请求只能进行url编码,而POST支持多种编码方式
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
- GET请求再URL中传送的参数是有长度限制的,而POST没有限制
- 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
- GET比POST更不安全,因为参数直接暴露再URL上,所以不能用来传递敏感信息
- GET参数通过URL传递,POST放在Request body中
五、HTTP状态码
1. 状态码分类
- 1xx:指示信息 —表示请求已接收,继续处理
- 2xx:成功—表示请求已被成功接收
- 3xx:重定向—要完成请求必须进行更进一步的操作
- 4xx:客户端错误—请求有语法错误或请求无法实现
- 5xx:服务器错误—服务器未能实现合法的请求
2.常见状态码
- 200 OK:客户端请求成功
- Partial Content:客户发送了一个带有Range(范围)头的GET请求,服务器完成了它
场景描述:video标签播放视频地址或音频地址,发送请求获取这个视频或音频,假设是5分钟,然后根据Range值截取内容返回,假设Range是0-3分钟,那么客户端就只能获取0-3分钟的视频或音频。 - 301 Moved Permanently :所请求的页面已转移到新的url ,永久重定向
- 302 Found:所请求的页面已经临时转移至新的url,临时重定向
- 304 Not Modified:服务器端告诉客户端,客户端已有缓存,无需重新获取,可以重新使用缓存
- 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
- 401 请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用, 一般是登录信息已失效,比如token
- 403 Forbidden: 对被请求页面的访问被禁止, 有些资源不允许客户端访问,只能服务器端访问
- 404 Not Found: 请求资源不存在
- 500 Internal Server Error: 服务器发生不可预期的错误原来缓冲的文档还可以继续使用
- 503 Server Unavaiable: 请求未完成,服务器临时过载或宕机,一段时间后可能恢复正常
六、什么是持久连接
HTTP 协议采用 “请求—应答”模式,当使用普通模式,即非Keep-Ailve模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)
当使用Keep -Alive 模式 (又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后续请求时,Keep-Alive 功能避免了建立或者重新建立连接
七、什么是管线化
持久连接的普通模式:请求和响应都是分开处理的,连接消息传递类似于
请求1 → 响应1→请求2 → 响应2→请求3 → 响应3
类似于电路并联;像火车站三个人分别从三个不同窗口进站
持久连接的管线化,把所有请求打包再一起,然后一起发送,响应数据也打包再一起,一块返回,类似于
请求1 →请求2→请求3 → 响应1→ 响应2→ 响应3
类似于电路串联;像家里哥哥、妹妹、姐姐都要喝不同类型的奶茶,让妹妹统一去点,然后妹妹回来分给大家
管线化的特点
- 管线化机制通过持久连接完成,仅HTTP/1.1 支持此技术
- 只有GET和HEAD请求可以进行管线化,而POST则有所限制
- 初次创建连接时不应启动管线机制,因为服务器不一定支持HTTP/1.1版本的协议
- 管线化不会影响响应到来的顺序
- HTTP1.1 要求服务端支持管线化
- 由于上面提到的服务器问题,开启管线化很可能并不会带来大幅度的性能提升,而且很多服务器端和代理程序对管线化的支持并不好,因此现代浏览器如Chrome和Firefox默认为开启管线化支持
相关文章:

【基础类】—HTTP协议类
一、HTTP协议的主要特点 简单快速:每个资源URI是固定的,访问某个资源输入URI即可灵活:在每一个HTTP协议中,请求头部分有一个数据类型,通过一个HTTP协议可以完成不同的数据类型传输无连接:连接一次就会断开…...

【Qt高级】QThread与QTimer组合使用引出的信号槽执行在哪个线程的思考【2023.08.06】
源码见 testQThread_QTimer… Qt 版本5.6.3 视频讲解:https://www.bilibili.com/video/BV15P411C79i/ 链接: 视频讲解 简介 想法很单纯,就是主线程启动一个子线程,子线程里启动一个定时器,定时执行一些任务,然鹅实际开…...

用于大型图像模型的 CNN 内核的最新内容
一、说明 由于OpenAI的ChatGPT的巨大成功引发了大语言模型的繁荣,许多人预见到大图像模型的下一个突破。在这个领域,可以提示视觉模型分析甚至生成图像和视频,其方式类似于我们目前提示 ChatGPT 的方式。 用于大型图像模型的最新深度学习方法…...

索尼电视怎么完全关机
索尼电视怎么完全关机 当用户想要关闭索尼电视时,可能会遇到一些问题。例如,他们可能会遇到如何完全关闭电视的问题。在本文中,我们将介绍如何完全关闭索尼电视。 首先,您需要找到索尼电视的电源按钮。通常,该按钮位…...

AI介绍——chat gpt/文心一言/claude/bard/星火大模型/bing AI
AI体验 1. AI 介绍(注册和使用)1.1 Chat GPT1.2 文心一言1.3 Slack 上的 Claude1.3.1 Claude 介绍1.3.2 Claude 使用 1.4 Google的Bard1.4.1 Bard 介绍1.4.2 Bard 使用 1.5 科大讯飞的星火大模型1.5.1 星火大模型 介绍1.5.2 星火大模型 使用 1.6 new bin…...

C++ 访问控制——公有继承、私有继承、保护继承
派生类继承了基类的全部数据成员和除了构造函数和析构函数之外的全部函数成员,但是这些成员的访问属性在派生的过程中是可以调整的。从基类继承的成员,其访问属性由继承方式控制。 基类的成员有public(公有)、protectedÿ…...

python性能调试
py-spy生成cpu火焰图 ft5.svg env/xxxx/bin pid26443$env/py-spy record -o /tmp/$f --pid $pid --nativememray实时查看内存 env/xxxx/bin$env/python -m memray run --live --trace-python-allocators --native run_demo.pymemray生成内存火焰图报告 frun_demo_042.bin en…...

738. 单调递增的数字
738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。 示例 1: 输入: n 10 输出: 9示例 2: 输入: n 1234 输出…...

ssh安全远程管理
目录 1、什么是ssh 2、ssh登陆 3、ssh文件传输 1、什么是ssh ssh是 Secure Shell 的缩写,是一个建立在应用层上的安全远程管理协议。ssh 是目前较为可靠的传输协议,专为远程登录会话和其他网络服务提供安全性。利用ssh 协议可以有效防止远程管理过程中…...

外部排序算法总结
一.内排总结 在之前博客里,博主已经介绍了各种内部排序算法的原理和C语言代码实现,不懂的朋友可以在同系列专栏里选择查看,今天介绍常见排序算法的最后一点,也就是外部排序。在此之前,我们先对外部排序的各种算法做一…...

Redis安装以及配置隧道连接(centOs)
目录 1.centOs安装Redis 2. Redis 启动和停⽌ 3. 操作Redis 2.Xshell配置隧道 1.centOs安装Redis #使⽤yum安装Redis yum -y install redis 2. Redis 启动和停⽌ #查看是否启动 ps -ef|grep redis#启动redis: redis-server /etc/redis.conf &#停⽌Redis redis-cli sh…...

mysql二进制方式升级8.0.34
一、概述 mysql8.0.33 存在如下高危漏洞,需要通过升级版本修复漏洞 Oracle MySQL Cluster 安全漏洞(CVE-2023-0361) mysql/8.0.33 Apache Skywalking <8.3 SQL注入漏洞 二、查看mysql版本及安装包信息 [rootlocalhost mysql]# mysql -V mysql Ver 8.0.33 fo…...

Kotlin单例代码实例
目录 一、饿汉式的实现二、懒汉式的实现三、安全 懒汉式的实现四、双重校验DCL 的实现 一、饿汉式的实现 Kotlin版本 object SingletonDemoKt/*** 背后的逻辑代码:public final class SingletonDemoKt {public static final SingletonDemoKt INSTANCE;private Si…...

(7.28-8.3)【大数据新闻速递】《数字孪生工业软件白皮书》、《中国绿色算力发展研究报告》发布;华为ChatGPT要来了
【数字孪生工业软件白皮书(2023)】 近日,第七届数字孪生与智能制造服务学术会议成功举行,2023《数字孪生工业软件白皮书》在会上正式发布。《白皮书》在《Digital Twin》国际期刊专家顾问委员会指导下,由国家重点研发计…...

TikTok海外抖音云控抢金币宝箱
TikTok海外抖音云控抢金币宝箱 中芯密科云控系统是一个稳定、操作简单的自动化管理工具,专为大型机房设计,可以监控、控制和管理机房内的设备。该系统具有负载均衡、操作简单、高容错等特点,能够提高机房设备的稳定性和可用性。 该系统具有以…...

H3C交换机如何通过MAC和IP查寻对应ARP信息
环境: H3C S6520-26Q-SI version 7.1.070, Release 6326 问题描述: H3C交换机如何通过MAC 查寻对应IP信息 解决方案: 一、已知设备MAC地址为ac11-b134-d066 通过MAC 查寻对应IP信息 命令 dis arp | in X-X-X [H3C]dis arp | in ac11…...

python进阶
目录 Json数据格式 前言 JSON格式 python数据和Json数据的相互转化 多线程 进程和线程 串行和并行 多线程编程 创建线程参数 具体案例 网络编程 套接字 socket服务端编程步骤 socket客户端编程步骤 python操作mysql数据库 查询并接收数据 数据插入 Json数据格…...

spring boot 配置文件和属性注入
文章目录 配置文件位置和路径自定义配置文件 属性注入添加yaml文件的支持 配置文件 位置和路径 当我们创建一个 Spring Boot 工程时,默认 resources 目录下就有一个 application.properties 文件,可以在 application.properties 文件中进行项目配置&am…...

springboot+vue私人健身和教练预约管理系统 nt5mp
随着世界经济信息化、全球网络化的到来,信息线上管理的飞速发展,为私人健身和教练预约管理的改革起到关键作用。若想达到安全、快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的私人健身和教练预约管理系…...

Kotlin基础(十一):反射和注解
前言 本文主要讲解kotlin反射和注解。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 kotlin反射 1.1.1 kotlin反射概念和常见使用场景 在Kotlin中,反射是一种能够在运行时动态地获取、检查和操作类、属性、方法等结构的能力。Kotlin为反射提供了一…...

DALLE2论文解读及实现(一)
DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents paper: https://cdn.openai.com/papers/dall-e-2.pdf github: https://github.com/lucidrains/DALLE2-pytorch DALLE2概览: - CLIP模型: 用于生成text embedding zt 和image …...

RabbitMQ-API
这里写目录标题 Hello word 模式添加依赖生产者消费者获取信道工具类 Work Queues模式消费者代码 C1开启多线程运行启动 消费者代码 C2生产者代码 消息应答自动应答消息应答的方法Multiple 的解释消息自动重新入队消息手动应答代码消费者API 队列持久化消息持久化不公平分发消息…...

外边距实现居中的写法
1、代码实例 2、默认是贴到左侧对齐的,但我们想要把他贴到中间对齐 3、居中的写法 4、这样就可以保证盒子居中了 5、以上写法仅适于行内元素和行内块元素的写法,有没有什么方法适用于行内块元素:可以添加text-align:center进行添加࿰…...

剑指 Offer 20. 表示数值的字符串 (正则 逐步分解)
文章目录 题目描述题目分析法一:完整代码: 法二:完整代码: 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者…...

【深度学习】Transformer,Self-Attention,Multi-Head Attention
必读文章: https://blog.csdn.net/qq_37541097/article/details/117691873 论文名:Attention Is All You Need 文章目录 1、Self-Attention 自注意力机制2、Multi-Head Attention 1、Self-Attention 自注意力机制 Query(Q)表示当…...

CADintosh X for mac CAD绘图软件2D CAD 程序 兼容 M1
CADintosh X for Mac是一个功能强大的2D CAD绘图程序,专为Mac用户设计。它由Lemke Software开发,提供了一套丰富的工具和功能,使用户能够轻松创建高质量的技术图纸,平面图和设计。 CADintosh X for Mac具有直观的用户界面&#x…...

【读书笔记】《厌女》- [日]上野千鹤子 - 2010年出版
不停的阅读,然后形成自己的知识体系。 2023.08. 读 《厌女》- [日]上野千鹤子 - 2010年出版 - 豆瓣读书 文章目录 2023年中文版作者序2015年中文版作者序第一章 喜欢女人的男人的厌女症 2023年中文版作者序 ‘厌女症’的现象本来如‘房间里的大象’,因为…...

Android 从其他xml文件中获取View组件数据
问题 Android Studio 我想在 trace.java 从setting.java绑定的页面activity_setting.xml中 的editview中获取数据 解决方案 仅适用于 在同一应用的不同组件之间共享数据 在 SettingActivity.java 中,当用户准备离开当前活动时,可以将 EditText 中的数…...

java 数组的使用
数组 基本介绍 数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型。 即:数组就是一组数据。 数组的使用 1、数组的定义 方法一 -> 单独声明 数据类型[] 数组名 new 数据类型[大小] 说明:int[] a new int…...

Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)
1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器…...