你学会了些什么211201?--http基础知识

news2025/4/22 22:47:58

概念
HTTP–Hyper Text Transfer Protocol,超文本传输协议;是一种建立在TCP上的无状态连接(短连接)。
整个基本的工作流程是:客户端发送一个HTTP请求(Request ),这个请求说明了客户端想要访问的资源;服务端收到请求之后,服务端开始处理请求,并根据请求运行相应的逻辑,然后访问资源,最后通过发送HTTP响应(Response)把结果返回给客户端。
其中一个请求的开始到一个响应的结束称为事务,当一个事务结束后会在服务端添加一条日志。

无状态:
http协议为了保证服务器的内存,不会维持客户端发过来的请求;即同一个客户端的这次请求和上次请求是没有对应关系。对于服务器来说,它并不知道这两个请求来自同一个客户端。例如:一个浏览器在短短几秒之内两次访问同一接口时,服务器不会因为已经给它发过应答报文而不接受第二次服务请求。
为了解决这个问题, Web程序引入了Cookie机制来维护状态。
短连接:
http1.0 默认使用短连接,就是:客户端和服务端每进行一次http操作,就建立一次连接,任务结束就中断连接。
建立连接–请求&响应–关闭连接
短连接中又包含:持久连接和非持久连接
非持久连接:
非持久连接有一个很大的缺点就是,每一个http请求都需要建立一个TCP连接 (http 1.0版本)
持久连接:
HTTP 1.1默认进行持久连接keep-alive,当TCP连接建立成功,并且在一次请求和响应完成后TCP不会立刻断开,会有一个超时时间keep-alive,在超时时间到期后TCP连接才会断开

一、URL结构

HTTP使用统一资源标识符(URL)来建立连接和传输数据,URL包含了用于查找某个资源的信息。
URL作用:通过URL可以到达任何一个地方寻找需要的资源,比如文件、音乐、图片等等;URL是Internet上的地址簿,定位网络资源的地址。
URL一般由以下部分构成:
https://code-api-pc.dao3.fun:443/map/tab/maps?offset=4&limit=32&tabKey1=mapPotential&orderBy=0
1.协议部分
该URL的协议部分为https:,表示网页用的是HTTPS协议,后面的//为分隔
2.域名部分
域名是code-api-pc.dao3.fun,发送请求时,需要向DNS服务器解析IP;解析之后会得到类似我们通过ping得到的ip地址,如192.168.16.106。极端情况下,如果为了优化请求,可以直接用IP作为域名使用
3.端口部分
域名后面的443表示端口,和域名之间用:分隔,端口不是一个URL的必须的部分。使用https协议时,如果端口是443,可以省略不写;与之相关联的是http的默认端口是80。
4.虚拟目录部分
从域名的第一个/开始到最后一个/为止,是虚拟目录的部分。其中,虚拟目录也不是URL必须的部分,本例中的虚拟目录是/map/tab/
5.文件名部分
从域名最后一个/开始到?为止,是文件名部分;本例中的文件名是maps
6.查询条件部分
从?开始到结束的部分是参数部分,又称为搜索部分、查询部分。本例中的参数是offset=4&limit=32&tabKey1=mapPotential&orderBy=0,例子中有多个参数,各个参数之间用&作为分隔符。
**7.扩展:**有的链接会携带锚点,其作用是定位到网页的某一个位置,例如通过链接直接定位到购物网站的秒杀活动的显示位置

二、HTTP 中 Request & Response 介绍

Request
HTTP的请求包括:请求行(request line)、请求头部(header)、空行 和 请求数据 四个部分组成
在这里插入图片描述

1.请求行
POST为请求类型,/ugc/creator/content/publish为要访问的资源,HTTP2.0是协议
2.请求头部
从第二行起为请求头部,Host指出请求的目的地(主机域名);User-Agent是客户端的信息,它是检测浏览器类型的重要信息,由浏览器定义,并且在每个请求中自动发送。
3.空行
请求头后面必须有一个空行
4.请求数据
请求的数据也叫请求体

Response
一般情况下,服务器收到客户端的请求后,就会有一个HTTP的响应消息,HTTP响应也由4部分组成,分别是:状态行、响应头、空行 和 响应体。
在这里插入图片描述

1.状态行
状态行由协议HTTP2.0、状态码200、状态消息OK组成
2.响应头
响应头是客户端可以使用的一些信息,如:date(生成响应的日期)、content-Type(类型及编码格式)等等
3.空行
响应头和响应体之间必须有一个空行
4.响应体
响应正文,例子中是键值对信息

三、HTTP状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。
响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误(500–599)
类别描述1xx信息,服务器错误,服务器在处理请求的过程中发生了错误2xx成功,操作被成功接收并处理3xx重定向,需要进一步的操作以完成请求4xx客户端错误,请求包含语法错误或无法完成请求5xx服务器错误,服务器在处理请求的过程中发生了错误

工作中常见的状态码:
100:unknownError
200:OK,请求成功
302:重定向;(临时)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
401:请求要求用户的身份认证
403:Forbidden服务器理客户端的请求,但是拒绝执行此请求(没有权限)
404:NotFound服务器无法根据客户端的请求找到资源(网页)
500:服务器内部错误,无法完成请求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每天学一个 Linux 命令(29):tail

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/29/index.html tail 命令用于显示文件的末尾内容,默认显示最后 10 行。它常用于实时监控日志文件或查看文件的尾部数据。以下是详细说明和示例: 命令格式 tail [选项] [文件...]常用选项 选项描述-n <NUM> …

【形式化验证基础】活跃属性Liveness Property和安全性质(Safety Property)介绍

文章目录 一、Liveness Property1、概念介绍2、形式化定义二、Safety Property1. 定义回顾2. 核心概念解析3. 为什么强调“有限前缀”4. 示例说明4.1 示例1:交通信号灯系统4.2 示例2:银行账户管理系统5. 实际应用的意义三. 总结一、Liveness Property 1、概念介绍 在系统的…

PI0 Openpi 部署(仅测试虚拟环境)

https://github.com/Physical-Intelligence/openpi/tree/main 我使用4070tisuper, 14900k,完全使用官方默认设置&#xff0c;没有出现其他问题。 目前只对examples/aloha_sim进行测试&#xff0c;使用docker进行部署, 默认使用pi0_aloha_sim模型(但是文档上没找到对应的&…

计算机视觉——利用AI幻觉检测图像是否是生成式算生成的图像

概述 俄罗斯的新研究提出了一种非常规方法&#xff0c;用于检测不真实的AI生成图像——不是通过提高大型视觉-语言模型&#xff08;LVLMs&#xff09;的准确性&#xff0c;而是故意利用它们的幻觉倾向。 这种新方法使用LVLMs提取图像的多个“原子事实”&#xff0c;然后应用自…

FlaskRestfulAPI接口的初步认识

FlaskRestfulAPI 介绍 记录学习 Flask Restful API 开发的过程 项目来源&#xff1a;【Flask Restful API教程-01.Restful API介绍】 我的代码仓库&#xff1a;https://gitee.com/giteechaozhi/flask-restful-api.git 后端API接口实现功能&#xff1a;数据库访问控制&#xf…

CSS预处理工具有哪些?分享主流产品

目前主流的CSS预处理工具包括&#xff1a;Sass、Less、Stylus、PostCSS等。其中&#xff0c;Sass是全球使用最广泛的CSS预处理工具之一&#xff0c;以强大的功能、灵活的扩展性以及完善的社区生态闻名。Sass通过增加变量、嵌套、混合宏&#xff08;mixin&#xff09;等功能&…

AI 速读 SpecReason:让思考又快又准!

在大模型推理的世界里&#xff0c;速度与精度往往难以兼得。但今天要介绍的这篇论文带来了名为SpecReason的创新系统&#xff0c;它打破常规&#xff0c;能让大模型推理既快速又准确&#xff0c;大幅提升性能。想知道它是如何做到的吗&#xff1f;快来一探究竟&#xff01; 论…

Qt通过ODBC和QPSQL两种方式连接PostgreSQL或PolarDB PostgreSQL版

一、概述 以下主要在Windows下验证连接PolarDB PostgreSQL版&#xff08;阿里云兼容 PostgreSQL的PolarDB版本&#xff09;。Linux下类似&#xff0c;ODBC方式则需要配置odbcinst.ini和odbc.ini。 二、代码 以下为完整代码&#xff0c;包含两种方式连接数据库&#xff0c;并…

MobaXterm连接Ubuntu(SSH)

1.查看Ubuntu ip 打开终端,使用指令 ifconfig 由图可知ip地址 2.MobaXterm进行SSH连接 点击session,然后点击ssh,最后输入ubuntu IP地址以及用户名

蓝桥杯2024省A.成绩统计

蓝桥杯2024省A.成绩统计 题目 题目解析与思路 题目要求返回至少要检查多少个人的成绩&#xff0c;才有可能选出k名同学&#xff0c;他们的方差小于一个给定的值 T 二分枚举答案位置&#xff0c;将答案位置以前的数组单独取出并排序&#xff0c;然后用k长滑窗O(1)计算方差 问…

Mac mini 安装mysql数据库以及出现的一些问题的解决方案

首先先去官网安装一下mysql数据库&#xff0c;基本上都是傻瓜式安装的流程&#xff0c;我也就不详细说了。 接下来就是最新版的mysql安装的时候&#xff0c;他就会直接让你设置一个新的密码。 打开设置&#xff0c;拉到最下面就会看到一个mysql的图标&#xff1a; 我设置的就是…

俄罗斯方块-简单开发版

一、需求分析 实现了一个经典的俄罗斯方块小游戏&#xff0c;主要满足以下需求&#xff1a; 1.图形界面 使用 pygame 库创建一个可视化的游戏窗口&#xff0c;展示游戏的各种元素&#xff0c;如游戏区域、方块、分数等信息。 2.游戏逻辑 实现方块的生成、移动、旋转、下落和锁…

你学会了些什么200601?--Flask搭建造测试数据平台

搭建造数平台的环境&#xff1a; ***python3.7 ***html5 ***css ***JavaScript ***Ajax ***MySQL 前台页面的显示 1.为了页面美化&#xff0c;使用了JavaScript&#xff0c;通过逐级展开/隐藏的的方式显示下一级菜单 2.为了在提交表单数据时页面不发生跳转&#xff0c;需要引用…

【音视频】FLV格式分析

FLV概述 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积⼩、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和…

Keil5没有stm32的芯片库

下载完重启就行了&#xff0c;我这里就不演示了&#xff0c;stm已经下载&#xff0c;随便选的一个芯片库演示一下

【DVWA 靶场通关】 File Inclusion(文件包含漏洞)

1. 前言 文件包含漏洞 是 Web 应用中较为常见的漏洞之一&#xff0c;攻击者通过操控文件路径&#xff0c;访问或包含系统上的敏感文件&#xff0c;甚至执行恶意代码。DVWA&#xff08;Damn Vulnerable Web Application&#xff09;提供了一个理想的实验环境&#xff0c;让安全…

游戏引擎学习第229天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾上次内容并介绍今天的主题 上次留下的是一个非常简单的任务&#xff0c;至少第一步是非常简单的。我们需要在渲染器中加入排序功能&#xff0c;这样我们的精灵&#xff08;sprites&#xff09;才能以正确的顺序显示。为此我…

【C++编程入门】:从零开始掌握基础语法

C语言是通过对C语言不足的地方进行优化创建的&#xff0c;C在C语言之上&#xff0c;C当然也兼容C语言&#xff0c; 在大部分地方使用C比C更方便&#xff0c;可能使用C需要一两百行代码&#xff0c;而C只需要五六十行。 目录 C关键字 命名空间 缺省参数 缺省参数分类 函数…

网络开发基础(游戏方向)之 概念名词

前言 1、一款网络游戏分为客户端和服务端两个部分&#xff0c;客户端程序运行在用户的电脑或手机上&#xff0c;服务端程序运行在游戏运营商的服务器上。 2、客户端和服务端之间&#xff0c;服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转…

【源码】【Java并发】【AQS】从ReentrantLock、Semaphore、CutDownLunch、CyclicBarrier看AQS源码

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f4da;欢迎订阅专栏…