当前位置: 首页 > news >正文

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&param2=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&param2=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使得开发者能够快速实现复杂的功能,如数据分析、自然语言处理、图像识别等,而无需从头编写大量的代码。在这个开放的生态中&#xf…...

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个树的结构如下&#xff…...

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举例 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许接口不兼容的类一起工作。 其核心思想是通过一个适配器类将不兼容的接口转换成客户端期望的另一个接口&…...

多传感器数字化分析系统

在工业飞速发展的今天&#xff0c;设备的安全稳定运行成为企业高效生产的关键因素。然而&#xff0c;传统的人工巡检方式面临着诸多挑战&#xff0c;如效率低下、漏检误检以及难以精准掌握设备运行状态等。旗晟凭借深厚的技术积累和创新精神&#xff0c;推出了多传感器数字化分…...

Java 基础教学:面向对象编程基础-封装、继承与多态

面向对象编程&#xff08;OOP&#xff09;是现代编程的重要范式&#xff0c;Java 语言提供了丰富的 OOP 特性&#xff0c;主要包括封装、继承和多态。本文将详细讲解这三个概念及其实现方式&#xff0c;并提供相应的代码示例。 1. 封装 1.1 概念 封装是将对象的状态&#xf…...

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:视觉分割的革命性飞跃

在人工智能的浪潮中&#xff0c;每一次技术的革新都如同一场视觉盛宴&#xff0c;让我们见证着数字时代的变迁。Meta再次以Segment Anything Model 2&#xff08;SAM 2&#xff09;引领了图像和视频分割技术的新纪元。作为首个用于实时、可提示的图像和视频对象分割的统一模型&…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...