HTTP的初步了解
目录
前言
一、HTTP协议的基本概念
1.1、请求格式
1.2、响应格式
二、HTTP链接问题
前言
提示:这里可以添加本文要记录的大概内容:
HTTP协议是超文本传输协议
HTTP的短连接:建立连接——数据传输——关闭连接
HTTP的长连接:建立连接——数据传输——(保持连接)——数据传输——关闭连接。如果长时间没有新的请求,连接才会关闭
提示:以下是本篇文章正文内容,下面案例可供参考
一、HTTP协议的基本概念
概念:HTTP协议是一个规范,规则。通过这个规则实现客户端与服务器之间的各种信息的传
输,它是响应协议(客户端向服务器发送一次请求,服务器返回对应的响应,得到响
应后接收通信)
协议格式:HTTP分为请求格式和响应格式两种
请求格式:客户端发送给服务端,用于请求服务器上的资源。由以下几个部分组成。
请求行:用于明确向服务器表达,自己请求的资源/功能
请求头部:对请求或正文的细致描写
空行:用于间隔头部与正文
正文:客户端向服务器发送的数据内容
响应格式:服务端发送给客户端,用于回应客户端的请求
响应行:直观向客户端描述本次请求的处理结果
响应头部:对本次响应以及正文进行额外的描述
空行:用于间隔头部与正文
正文:返回给客户端的具体数据
1.1、请求格式
请求行:用于向服务器表达、自己请求的资源
组成:包含三个元素(请求方法)、元素之间以空格间隔、以 \r\n 结尾
请求方法:用于明确当前的请求是一个怎么样的请求
GET:用于向服务器请求实体资源,请求没有正文但是可用提交数据、提交的数据
在URL中,而不是正文中,但提交的数据有限且不安全。
HEAD:与GET功能类似,但是区别在于响应中不用返回实体资源、只有头部字段
POST:用于向服务器提交数据,提交的数据在正文中。
请求头部:对请求和正文的细致描述
格式:key: val\r\nkey: val\r\n......
User-Agent: 描述客户端版本信息。服务端可以定制化响应
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Content-Type:描述正文类型,决定了正文将会被如何处理application/x-www-form-urlencoded
Content-Length:描述正文长度40
Referer: 告诉服务器本次请求的来源链接https://www.baidu.com/form-page
请求空行:\r\n 间隔请求头部与正文
正文:提交给服务器的数据
URL:网址——资源定位符
作用:描述如何在某个地方获取某个指定的资源
要素:http//user:pass@www.baidu.com:80/s?wd=C%2B%2b&e=utf8#ch
https://www.baidu.com:80/path/to/resourceparam1=value1¶m2=value2#section1
http:协议名称,表示本次通信使用的是什么协议
user:访问服务器的用户认证信息的用户名
pass:访问服务器的用户认证信息的密码
baidu.com:域名,经过解析可以得到服务器的IP地址
80:http协议的默认端口是80端口,https是443端口
/s或/path/to/resource:请求资源的路径
wd=C%2B%2b&e=utf8或param1=value1¶m2=value2: 查询字符串
ch或section1:片段标识符,通常是一个html标签的id值
协议版本:现在通常是1.1的版本
从1.0版本进程的改进,从短链接支持了长链接
1.2、响应格式
响应行:
格式:HTTP协议版本、状态码、状态消息 \r\n
1xx:信息状态码,对应请求的描述; 101--协议切换
2xx:成功状态码; 200--成功处理
3xx:重定向状态码; 302-临时重定向 301-永久重定向 303-请求其他路径
4xx:客户端错误状态码; 404-请求资源不存在
5xx:服务器错误状态码; 502-服务器请求失败 504-服务器请求超时
响应头部:对本次响应以及正文进行额外的描述
格式:key: val\r\nkey: val\r\n......
Location:当状态码为3XX时,此字段指定了客户端应进一步访问的URL。
正文:响应(返回)给客户端的数据
二、HTTP链接问题
由于HTTP的一个简单的请求,并且是短链接,每次请求服务器都不一定使用同一个链接,如果每次请求服务器都是新连接,那么如何识别客户端身份就是一个问题,为了解决这个问题提出了cookie机制
cookie:
在http协议头部中加入了两个字段:Cookie Set-Cookie
1、客户端登陆成功后、服务器通过Set-Cookie字段向客户端返回一些数据:客户端身
份及状态
2、客户端收到响应后、将Set-Cookie字段中的数据保存起来到cookie文件中
3、当客户端下次请求服务器是,就会从cookie文件中读取出cookie数据,通过Cookie
字段发送给服务器
session:
cookie是有安全隐患的它默认是明文存储,因此推出了session
会话控制—每个客户端在访问服务器后,服务器都会为其创建一个会话,这个会话是存
储在服务端上的包含了用户的会话信息,如用户身份,会话状态,偏好设置
等。当服务端响应的时候,会将session的id作为cookie数据通过Set-Cookie
字段发送给客户端,下次客户端请求服务器的时候,就会将session的id通过
Cookie发送给服务器
相关文章:
HTTP的初步了解
目录 前言 一、HTTP协议的基本概念 1.1、请求格式 1.2、响应格式 二、HTTP链接问题 前言 提示:这里可以添加本文要记录的大概内容: HTTP协议是超文本传输协议 HTTP的短连接:建立连接——数据传输——关闭连接 HTTP的长连接:…...
SM单元 硬件
在硬件上,SM(Streaming Multiprocessor)指的是流式多处理器单元,它是GPU架构中非常重要的组成部分。SM可以看作是GPU的心脏,类似于CPU核心,负责执行并行计算任务。每个SM包含多个流处理器(cores…...
如何从CSV、JSON等格式创建DataFrame
在Spark中,你可以使用 SparkSession 从CSV和JSON等格式创建 DataFrame。以下是如何从这两种格式创建 DataFrame 的示例。 1. 从CSV文件创建DataFrame scala// 创建SparkSessionval spark SparkSession.builder().appName("CSV to DataFrame").getOrCrea…...
Java避坑案例 - 线程池错误的混用引发的性能故障分析
文章目录 问题现象问题分析问题修复线程池的混用策略任务类型与线程池配置最佳实践 问题现象 代码使用了线程池异步处理一些内存中的数据,但通过监控发现处理得非常慢,整个处理过程都是内存中的计算不涉及 IO 操作,也需要数秒的处理时间&…...
七种方法助你找到实用且免费的API服务
随着现代互联网的迅猛发展,API(应用程序编程接口)已成为推动技术创新的核心工具。API使得开发者能够快速实现复杂的功能,如数据分析、自然语言处理、图像识别等,而无需从头编写大量的代码。在这个开放的生态中…...
leetcode-74-搜索二维矩阵
题解: 遍历二维数组matrix中的每个list,如果target在list中则返回True(退出循环);如果全部遍历完还没有出现target则返回False。 核心就是在list中查找target! 代码实现:...
122.WEB渗透测试-信息收集-ARL(13)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:121.WEB渗透测试-信息收集-ARL(12) 输入命令: docker…...
动态规划 —— 路径问题-下降路径最小和
1. 下降路径最小和 题目链接: 931. 下降路径最小和 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-falling-path-sum/description/ 2. 算法原理 状态表示:以莫一个位置位置为结尾 dp[i,j]表示:到…...
【Linux网络】TCP_Socket
目录 TCP协议(传输控制协议) listen状态 accept和connect TCP_echo_server (1)创建套接字 (2)绑定 (3)设置listen状态 (4)loop (5)客户端 多线程远程…...
NVR批量管理软件/平台EasyNVR多个NVR同时管理支持视频投放在电视墙上
在当今智能化、数字化的时代,视频监控已经成为各行各业不可或缺的一部分,无论是公共安全、交通管理、企业监控还是智慧城市建设,都离不开高效、稳定的视频监控系统的支持。而在这些应用场景中,将监控视频实时投放到大屏幕电视墙上…...
Springboot集成阿里云通义千问(灵积模型)
我这里集成后,做成了一个工具jar包,如果有不同方式的,欢迎大家讨论,共同进步。 集成限制: 1、灵积模型有QPM(QPS)限制,每个模型不一样,需要根据每个模型适配 集成开发思路: 因有…...
微信公众号(或微信浏览器)获取openId(网页授权)
下单支付需要openId 首先授权去拿到code --然后调用后太换取openId 1.去拿取code 下图中执行到window.location.href ( redirect_uri 传入当前路径-)–执行后重新跳转到当前页面–但是路径上会带上code参数 //然后调用后台方法–将code传给后台得到 o…...
C++算法第五天
本篇文章继续和大家一起刷算法题 第一题 题目链接 . - 力扣(LeetCode) 题目解析 题目要求: 这是一个连续的子数组 计算子数组内元素的和,若数组内元素的和符合 > target的值并且该子数组的长度是最短的,则返回…...
牛客网剑指Offer-树篇-JZ26 树的子结构
题目 来源:JZ26 树的子结构 描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下ÿ…...
FFmpeg 4.3 音视频-多路H265监控录放C++开发六,使用SDLVSQT显示yuv文件
使用QT 显示YUV 文件 在最后一帧的时候会不停的显示最后一帧图片。 Vsqtshowyuv.h #pragma once#include <QtWidgets/QWidget> #include "ui_vsqtshowyuv.h" #include <sdl/SDL.h> #include <iostream> #include <fstream> #include <Q…...
Spring 设计模式之适配器模式
Spring 设计模式之适配器模式 适配器模式用到的场景java举例 适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的类一起工作。 其核心思想是通过一个适配器类将不兼容的接口转换成客户端期望的另一个接口&…...
多传感器数字化分析系统
在工业飞速发展的今天,设备的安全稳定运行成为企业高效生产的关键因素。然而,传统的人工巡检方式面临着诸多挑战,如效率低下、漏检误检以及难以精准掌握设备运行状态等。旗晟凭借深厚的技术积累和创新精神,推出了多传感器数字化分…...
Java 基础教学:面向对象编程基础-封装、继承与多态
面向对象编程(OOP)是现代编程的重要范式,Java 语言提供了丰富的 OOP 特性,主要包括封装、继承和多态。本文将详细讲解这三个概念及其实现方式,并提供相应的代码示例。 1. 封装 1.1 概念 封装是将对象的状态…...
Ubuntu环境本地部署DbGate数据库管理工具并实现无公网IP远程访问
文章目录 前言1. 安装Docker2. 使用Docker拉取DbGate镜像3. 创建并启动DbGate容器4. 本地连接测试5. 公网远程访问本地DbGate容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 前言 本文主要介绍如何在Linux Ubuntu系统中使用Docker部署DbGate数…...
【AI抠图整合包及教程】Meta SAM 2:视觉分割的革命性飞跃
在人工智能的浪潮中,每一次技术的革新都如同一场视觉盛宴,让我们见证着数字时代的变迁。Meta再次以Segment Anything Model 2(SAM 2)引领了图像和视频分割技术的新纪元。作为首个用于实时、可提示的图像和视频对象分割的统一模型&…...
Windows 11任务栏拖放功能终极修复指南:3步恢复高效操作体验
Windows 11任务栏拖放功能终极修复指南:3步恢复高效操作体验 【免费下载链接】Windows11DragAndDropToTaskbarFix "Windows 11 Drag & Drop to the Taskbar (Fix)" fixes the missing "Drag & Drop to the Taskbar" support in Windows…...
ArcGIS 10.2 保姆级安装与破解教程(含License Manager启动失败解决方案)
ArcGIS 10.2 完整安装指南:从零开始到完美运行 1. 准备工作与环境检查 在开始安装ArcGIS 10.2之前,确保你的系统满足以下基本要求: 操作系统:Windows 7/8/10(32位或64位)硬件配置:至少4GB RAM&a…...
如何快速破解Cursor Pro限制:一键激活AI编程助手的完整指南
如何快速破解Cursor Pro限制:一键激活AI编程助手的完整指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached you…...
Metz Connect工业连接器国产替代技术解析
在工业自动化、楼宇控制以及通信基础设施领域,连接器作为底层物理连接单元,直接影响系统的稳定性与长期可靠运行。Metz Connect作为德国知名连接技术厂商,其产品涵盖工业以太网连接器、PCB端子、RJ45模块化接口、M12工业连接器以及DIN导轨I/O…...
Unitree Go2 ROS2 SDK架构设计指南:实现企业级机器人性能优化的5大策略
Unitree Go2 ROS2 SDK架构设计指南:实现企业级机器人性能优化的5大策略 【免费下载链接】go2_ros2_sdk Unofficial ROS2 SDK support for Unitree GO2 AIR/PRO/EDU 项目地址: https://gitcode.com/gh_mirrors/go/go2_ros2_sdk Unitree Go2 ROS2 SDK是一个为宇…...
摄像头驱动调试避坑指南:用示波器快速定位I2C不通、MIPI无信号问题
摄像头驱动调试避坑指南:用示波器快速定位I2C不通、MIPI无信号问题 当摄像头模组在硬件调试阶段出现异常时,软件工程师往往会陷入"配置检查-重新烧录-再检查"的死循环。实际上,80%的摄像头初始化失败问题源于硬件信号层面的异常。本…...
3分钟掌握SRWE:打破屏幕分辨率限制的终极窗口编辑神器
3分钟掌握SRWE:打破屏幕分辨率限制的终极窗口编辑神器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE(Simple Runtime Window Editor)是一款革命性的实时窗口编辑器&…...
广义逆矩阵:从A+与A-的数学定义到工程求解实践
1. 广义逆矩阵:工程师的数学工具箱 第一次听说"广义逆矩阵"这个概念时,我正在处理一个推荐系统的评分预测问题。当时遇到一个头疼的情况:用户-物品评分矩阵极其稀疏,直接求逆根本行不通。导师轻描淡写地说:&…...
问卷设计对比实测:手工瞎编≠通用 AI≠学术专用!虎贲等考 AI 重新定义可发表级问卷
在毕业论文、课程论文、期刊实证研究中,问卷是决定数据是否有效、模型能否跑通、论文能否过关的核心一环。但 90% 的学生都在用错误方式做问卷:手工凭感觉出题、网上随便抄量表、用通用 AI 随意生成…… 结果要么信效度不达标,要么数据无法分…...
CM-GAI:融合最优传输与连续介质力学的物理约束生成模型
1. 项目概述:当连续介质力学遇见最优传输在工程与材料科学的深水区,我们常常面临一个令人头疼的“数据荒”问题:极端条件下的物理场数据,比如材料在接近熔点的应力-应变行为,或者结构在超高冲击速度下的瞬态变形&#…...
