http(下)
http的工作流程:
客户端---服务端通信过程
请求----响应的模型
建立连接:tcp/ip协议与服务器建立连接(三次握手),客户端向服务器的80端口发送连接请求
发送请求:一旦连接建立之后,客户端就像服务端发送http请求。http请求:由一个请求行和多个头部字段组成
请求方式:get post
服务端处理请求:根据请求的方式和内容进行处理。服务端会读取请求头的字段,解析参数,处理数据等等
服务端返回响应:形成一个http响应,响应由一个响应行,包含多个字段。响应内容包含重要的内容状态码,用于表示服务端对于请求的处理结果
面试题:
http的状态码
1xx:信息提示100-101 无实际作用
2xx:成功,表示请求处理结果成功 200
3xx:重定向,304表示请求的是缓存
4xx:客户端错误,403 404,请求的页面不存在或者没有权限访问
403:请求的页面禁止访问
404:服务器无法请求的页面
5xx:服务器错误
- 内部服务器错误
500:检查防火墙,检查进程也就是服务状态,检查端口,检查配置文件,端口号被占用
502:无效网关
503:请求的服务器不可用,可能下线了
504:网关请求超时
生产中常见的状态码:
200 ok:请求成功
301:永久重定向
302:临时重定向
304:访问的是本地缓存
403:Forbidden,禁止客户访问该页面
404:NOT FOUND,服务器无法找到被请求的页面
500:inetnal server error,内部服务器错误
502:BAD geteway,网关失效(服务端的网关失效)
503:server Unavailable,服务器不可用(网站维护)
504:GATEWAY timeout,网关请求超时(服务端处于维护或者路由器故障)
传输数据:一旦服务器生成了http响应,会通过之前建立的连接将响应返回给客户端
响应当中包含了请求的资源(网页内容)以及其他的需要传输的数据(一般是自定义)
关闭连接:响应发送完成,服务端就会进入连接关闭,http1.1 time_wait。双方还在建立连接,只是双方之间不在有数据传输。一旦有新的请求,连接可以继续使用。160秒 会话保持或者长连接
http1.1会一次性获取页面的全部资源,然后发起四次挥手。只是不再传输数据,连接并没有断开
客户端解析和现实响应:
客户端收到http响应之后,解析响应内容,包括页面解析,显示图片,播放视频
主要靠的是浏览器
客户端也可以继续发送请求,或者打开新的连接,请求其他资源
http的请求方式:
get的方式:
get向服务器放送请求的数据,依照http协议来进行get就是请求
请求行:
请求体:
Accept:客户端可以接受的数据类型
Accept-Encoding:客户端可以接受的编码格式,以及数据是否需要压缩
Accept-Language:客户端可以接受的语言类型
Cache-Control:数据再本地缓存的时间
Connection:连接的处理方式,一般都是会话保存
host:表示请求的ip和端口号,也可以理解为请求的主机名
User-Agent:客户端请求使用的浏览器信息
响应头:
响应体:
post:向服务端发送数据,按照http协议进行,服务器添加数据,post的请求方式会修改服务器上的数据
get和post的区别:
get的请求可以换粗
get的请求还可以保存在浏览器的cookie中
get的请求长度有限制
get就是获取数据
post的请求不能被缓存,也不会保存在浏览器的cookie中
post请求没有长度限制
请求的字符串不会显示,比较安全
小工具:
telnet:可以测试服务器的指定断开是否正常
yum -y install telnet
命令:telnet 192.168.233.20 80
nc:
命令:
test1:nc -l 8888
test2:nc 192.168.233.10 8888
相关文章:
http(下)
http的工作流程: 客户端---服务端通信过程 请求----响应的模型 建立连接:tcp/ip协议与服务器建立连接(三次握手),客户端向服务器的80端口发送连接请求 发送请求:一旦连接建立之后,客户端就像…...
Python学习基础笔记七十二——IDE集成开发环境
集成开发环境,英文缩写是IDE。 IDE可以帮你更高效地开发项目代码。因为它提供了非常实用的功能,比如项目文件管理、语法高亮、代码导航、自动补齐代码、语法静态检查、调试、版本控制等等。 两款IDE:Pycharm和VSCode。 pycharm中的代码文件都…...
[MQ]Win平台RocketMQ安装启动
1、下载 官网下载地址:https://rocketmq.apache.org/zh/download 2、解压ZIP包 解压rocketmq-all-x.x.x-bin-release.zip到目录。 比如我解压到了E:\Env\MQ_rocket\rocketmq-all-5.1.4-bin-release 3、配置环境变量 ROCKETMQ_HOME 4、RocketMQ JVM内存配置 这个需要…...
vscode工程屏蔽不使用的文件夹或文件的方法
一. 简介 vscode是一款 微软提供的免费的代码编辑软件。 对于 IMX6ULL-ALPHA开发板而言,NXP官方uboot一定会支持不止 IMX6ULL芯片的代码,也不止支持 一种架构,还支持其他芯片或架构的源码文件。 为了方便阅读代码,vscode软件可…...
黑马JVM总结(三十四)
(1)JMM概述 (2)JMM-原子性-synchronized java内存模型是如何保证原子性的呢,它是通过synchroized关键字,来达到这个目的的 第一个线程来了进入同步代码块之后,把这个对象加上锁了,…...
[linux]vncserver常用终端命令合集
开启vnc服务:systemctl start vncserver:1.service 关闭vnc服务:systemctl stop vncserver:1.service 重启vnc服务:systemctl restart vncserver:1.service 设置VNC密码: vncpasswd 开启VNC: vncserver :1 关闭VNC࿱…...
亚马逊、eBay,速卖通,国际站买家账号支付异常问题解决方法
如何解决下单被砍、封号问题,建议采取以下措施: 买家账号下单,不单纯只是解决支付卡、IP问题就可以了,因为平台大数据风控点很多, 我们防关联具体要解决几个问题 一:要硬件参数的关联、安全码、地区码、…...
Constitutional AI
用中文以结构树的方式列出这篇讲稿的知识点: Although you can use a reward model to eliminate the need for human evaluation during RLHF fine tuning, the human effort required to produce the trained reward model in the first place is huge. The label…...
TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
作为一款在 Java 开发社区中广受欢迎的技术框架,SpringBoot 在开发者和企业的具体实践中应用广泛。具体来说,它是一个用于构建基于 Java 的 Web 应用程序和微服务的框架,通过简化开发流程、提供约定大于配置的原则以及集成大量常用库和组件&a…...
数据结构-冒泡排序Java实现
目录 一、引言二、算法步骤三、原理演示四、代码实战五、结论 一、引言 冒泡排序是一种基础的比较排序算法,它的思想很简单:重复地遍历待排序的元素列表,比较相邻元素,如果它们的顺序不正确,则交换它们。这个过程不断重…...
完整教程:Java+Vue+Websocket实现OSS文件上传进度条功能
引言 文件上传是Web应用开发中常见的需求之一,而实时显示文件上传的进度条可以提升用户体验。本教程将介绍如何使用Java后端和Vue前端实现文件上传进度条功能,借助阿里云的OSS服务进行文件上传。 技术栈 后端:Java、Spring Boot 、WebSock…...
【微服务 SpringCloud】实用篇 · 服务拆分和远程调用
微服务(2) 文章目录 微服务(2)1. 服务拆分原则2. 服务拆分示例1.2.1 导入demo工程1.2.2 导入Sql语句 3. 实现远程调用案例1.3.1 案例需求:1.3.2 注册RestTemplate1.3.3 实现远程调用1.3.4 查看效果 4. 提供者与消费者 …...
Linux 下I/O操作
一、文件IO 文件 IO 是 Linux 系统提供的接口,针对文件和磁盘进行操作,不带缓存机制;标准IO是C 语言函数库里的标准 I/O 模型,在 stdio.h 中定义,通过缓冲区操作文件,带缓存机制。 标准 IO 和文件 IO 常…...
C#内映射lua表
都是通过同一个方法得到的 例如得到List List<int> list LuaMgr.GetInstance().Global.Get<List<int>>("testList"); 只要把Get的泛型换成对应的类型即可 得到Dictionnary Dictionary<string, int> dic2 LuaMgr.GetInstance().Global…...
android studio检测不到真机
我的情况是: 以前能检测到,有一天我使用无线调试,发现调试有问题,想改为USB调试,但是半天没反应,我就点了手机上的撤销USB调试授权,然后就G了。 解决办法: 我这个情况比较简单&…...
【Eclipse】设置自动提示
前言: eclipse默认有个快捷键:alt /就可以弹出自动提示,但是这样也太麻烦啦!每次都需要手动按这个快捷键,下面给大家介绍的是:如何设置敲的过程中就会出现自动提示的教程! 先按路线找到需要的页…...
单片机TDL的功能、应用与技术特点 | 百能云芯
在现代电子领域中,单片机(Microcontroller)是一种至关重要的电子元件,广泛应用于各种应用中。TDL(Time Division Multiplexing,时分多路复用)是一种数据传输技术,结合单片机的应用&a…...
解决笔记本无线网络5G比2.4还慢的奇怪问题
环境:笔记本Dell XPS15 9570,内置无线网卡Killer Wireless-n/a/ac 1535 Wireless Network Adapter,系统win10家庭版,路由器H3C Magic R2Pro千兆版 因为笔记本用的不多,一直没怎么注意网络速度,直到最近因为…...
GitHub Action 通过SSH 自动部署到云服务器上
准备 正式开始之前,你需要掌握 GitHub Action 的基础语法: workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。name: 工作流的名称。on: 指定次工作流的触发器。push 表示只要有人将更改推…...
【AOP系列】7.数据校验
在Java中,我们可以使用Spring AOP(面向切面编程)和自定义注解来做数据校验。以下是一个简单的示例: 首先,我们创建一个自定义注解,用于标记需要进行数据校验的方法: import java.lang.annotat…...
STMPE811电阻触摸屏驱动设计与实现
1. 项目概述TS_DISCO_F429ZI 是专为 STMicroelectronics STM32F429ZI 探索套件(DISCO_F429ZI)设计的触摸屏驱动类,其核心职责是抽象并控制该开发板上集成的 LCD 模块所搭载的电阻式触摸屏控制器。该类并非通用型触摸驱动,而是深度…...
Krita AI Diffusion图像引导适配器功能异常的深度解决方案
Krita AI Diffusion图像引导适配器功能异常的深度解决方案 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitcode.com/gh…...
效率提升:基于快马平台为dc=y103pc=类参数快速打造调试工具
效率提升:基于快马平台为dcy103&pc类参数快速打造调试工具 在日常开发中,我们经常需要处理各种URL参数,尤其是类似"dcy103&pctest"这样的查询字符串。手动解析和修改这些参数不仅效率低下,还容易出错。最近我在…...
ARL灯塔扫不出指纹?手把手教你用Python脚本批量导入指纹库,提升资产识别准确率
ARL灯塔指纹识别优化实战:Python脚本批量导入与精准率提升指南 资产侦察灯塔(ARL)作为渗透测试领域的重要工具,其核心价值在于准确识别目标资产的技术特征。然而许多中级用户发现,默认指纹库在面对特定行业或新型资产…...
2026 年提词器 App 的新方向:AI 改稿 + 语速匹配,正在重新定义“读稿“这件事
核心结论:2026 年提词器 App 已经从"滚字幕"进化到"懂你怎么说"。AI 语速匹配、智能跟读、违禁词检测正在成为新标配,而在综合体验上,拍摄提词器是目前把这些能力整合得最完整的一款产品。一、提词器 App 正在经历一次代…...
WeClaw_42_Agent工具注册全链路:从BaseTool到意图识别的标准化接入
WeClaw_42_Agent工具注册全链路:从BaseTool到意图识别的标准化接入作者: WeClaw 开发团队 日期: 2026-03-29 版本: v1.0 标签: Agent 工具、BaseTool、意图识别、渐进式暴露、延迟注入📖 摘要 本文系统讲解 WeClaw Agent 工具注册的完整链路。当需要将一…...
C++的std--ranges容错系统
C的std::ranges容错系统:现代编程的稳健之道 在C20标准中,std::ranges库的引入彻底改变了算法与容器的交互方式,其容错机制为开发者提供了更安全、更灵活的编程体验。传统迭代器容易因越界或无效操作导致未定义行为,而std::range…...
微服务架构的陷阱:我们是如何从拆分成“微”麻烦的
对于软件测试从业者而言,微服务架构的兴起既带来了前所未有的挑战,也揭示了隐藏在水面之下的诸多陷阱。从单体应用向微服务转型,初衷是为了提升系统的灵活性、可维护性和团队的交付效率。然而,在实践中,许多团队却发现…...
CSS 容器查询:组件级响应式设计
CSS 容器查询:组件级响应式设计代码如诗,容器如画。让我们用容器查询的强大能力,创建真正自适应的组件。什么是容器查询? 容器查询(Container Queries)是 CSS 中一项革命性的特性,它允许我们根据…...
[LangChain智能体本质论-01]两种视角看待Agent和ReAct循环
作为LangChain智能体的Agent采用一种被称为ReAct循环的执行流程(如下图所示),这是一种结合了“推理”(Reasoning)与“行动”(Acting)的交互模式,旨在让Agent能像人类一样通过逻辑思考…...
