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

概念
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.mzph.cn/news/902360.shtml

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

相关文章

MCU开发学习记录8 - 基本定时器学习与实践(HAL库) - 定时器DMA循环模式修改ARR值、定时器中断方式修改ARR值 - STM32CubeMX

名词解释: TRGO:Trigger Out General Purpose Output ARR:Auto-reload PSC:Prescaler CNT:Counter EGR:event generation register 本文将介绍基本定时器的概念、相关函数以及STM32CubeMX生成定时器的配置…

考研系列-计算机网络冲刺考点汇总(上)

写在前面 本文将总结王道408考研课程的计算机网络冲刺考点的第一章到第三章内容(计算机网络体系结构、物理层、数据链路层)。【图片较多,加载需要时间,可以提前打开加载~~】 第一章、计算机网络体系结构 注意:PCI(头部…

设计模式每日硬核训练 Day 14:组合模式(Composite Pattern)完整讲解与实战应用

🔄 回顾 Day 13:桥接模式小结 在 Day 13 中,我们学习了桥接模式(Bridge Pattern): 用于将“抽象”与“实现”分离,适用于双维度变化场景(如图形类型 渲染方式)。它强调…

讯联桌面TV版apk下载-讯联桌面安卓电视版免费下载安装教程

在智能电视的使用过程中,一款好用的桌面应用能极大提升我们的使用体验。讯联桌面 TV 版就是这样一款备受关注的应用,它可以让安卓电视拥有更个性化、便捷的操作界面。今天,就为大家详细介绍讯联桌面 TV 版 apk 的免费下载安装教程。 一、下载…

Nginx知识点

Nginx发展历史 Nginx 是由俄罗斯程序员 Igor Sysoev 开发的高性能开源 Web 服务器、反向代理服务器和负载均衡器 ,其历史如下: 起源与早期开发(2002 - 2004 年) 2002 年,当时 Igor Sysoev 在为俄罗斯门户网站 Rambl…

uview1.0 tabs组件放到u-popup中在微信小程序中滑块样式错乱

解决思路 重新计算布局信息&#xff1a;在弹窗显示后重新调用 init 方法来计算组件的布局信息。使用 nextTick&#xff1a;保证在视图更新之后再进行布局信息的计算。 <u-tabs ref"tabsRef" ></u-tabs> makeClick(){this.makeShowtruethis.$nextTick…

腾讯一面-软件开发实习-PC客户端开发方向

1.自我介绍就不多赘述了 2. 请介绍一下你的项目经历 - 介绍了专辑鉴赏项目&#xff0c;前端使用html语言编写&#xff0c;后端基于http协议使用C语言进行网页开发。此外&#xff0c;还提及项目中涉及处理多线程问题以及做过内存池管理项目。 3. 项目中HTTP协议是使用库实现的…

[数据可视化] Datagear使用心得:从数据整备到可视化联动实践

Datagear 是一款功能强大的数据可视化与报表工具&#xff0c;在日常数据分析与展示过程中&#xff0c;能有效帮助用户构建交互式报表与面板。本文结合实际使用场景&#xff0c;总结了在 Datagear 平台上关于元数据整备、Board 面板设计、图表嵌入等方面的使用经验&#xff0c;供…

【音视频】MP4解封装

一、概述 实现了读取mp4文件&#xff0c;提取出h264和aac文件&#xff0c;可以直接播放 二、实现过程 准备文件 在build路径下添加mp4文件 同时&#xff0c;添加main函数参数&#xff0c;表示输入文件和输出文件 打开文件 打开输入文件&#xff0c;初始化格式上下文 char…

idea2024.1双击快捷方式打不开

idea2024.1突然双击快捷方式打不开&#xff0c;使用管理员运行也打不开 在安装的idea路径下的bin目录下双击打开idea.bat文件&#xff0c;要是打不开使用txt格式打开&#xff0c;打开后在最后一行加上pause&#xff0c;之后保存。 看看报错信息是不是有一个initializedExcept…

【错误记录】Windows 命令行程序循环暂停问题分析 ( 设置 “ 命令记录 “ 选项 | 启用 “ 丢弃旧的副本 “ 选项 | 将日志重定向到文件 )

文章目录 一、报错信息二、问题分析1、Windows 命令行的缓冲区机制2、命令记录设置 三、解决方案1、设置 " 命令记录 " 选项2、将日志重定向到文件 一、报错信息 Java 程序中 , 设置 无限循环 , 每次循环 休眠 10 秒后 , 再执行程序逻辑 , 在命令行中打印日志信息 ; …

STM32H5开发陀螺仪LSM6DSV16X(1)----轮询获取陀螺仪数据

STM32H5开发陀螺仪LSM6DSV16X.1--轮询获取陀螺仪数据 概述视频教学样品申请源码下载硬件准备参考程序通信模式管脚定义IIC通信模式速率新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Op…

Android端使用无障碍服务实现远程、自动刷短视频

最近在做一个基于无障碍自动刷短视频的APP&#xff0c;需要支持用任意蓝牙遥控器远程控制&#xff0c; 把无障碍服务流程大致研究了一下&#xff0c;从下面3个部分做一下小结。 1、需要可调整自动上滑距离和速度以适配不同的屏幕和应用 智能适配99%机型&#xff0c;滑动参数可…

Spark和Hadoop的区别和联系

Hadoop 和 Spark 的区别 1. 架构 Hadoop&#xff1a;基于 HDFS&#xff08;分布式文件系统&#xff09;和 MapReduce&#xff08;分布式计算框架&#xff09;。HDFS 负责数据的分布式存储&#xff0c;而 MapReduce 是其主要的计算框架&#xff0c;通过 Map 和 Reduce 任务进行…

【版本控制】idea中使用git

大家好&#xff0c;我是jstart千语。接下来继续对git的内容进行讲解。也是在开发中最常使用&#xff0c;最重要的部分&#xff0c;在idea中操作git。目录在右侧哦。 如果需要git命令的详解&#xff1a; 【版本控制】git命令使用大全-CSDN博客 一、配置git 要先关闭项目&#xf…

论文阅读:2023 arxiv A Survey of Reinforcement Learning from Human Feedback

A Survey of Reinforcement Learning from Human Feedback https://arxiv.org/pdf/2312.14925 https://www.doubao.com/chat/3506943124865538 速览 这篇论文是关于“从人类反馈中进行强化学习&#xff08;RLHF&#xff09;”的综述&#xff0c;核心是讲如何让AI通过人类反…

单片机 + 图像处理芯片 + TFT彩屏 进度条控件

进度条控件使用说明 概述 本进度条控件基于单片机 RA8889/RA6809 TFT开发&#xff0c;提供了简单易用的进度显示功能。控件支持多个进度条同时显示、自定义颜色、边框和标签等特性&#xff0c;适用于需要直观显示进度信息的各类应用场景。 特性 支持多个进度条同时显示可…

数据处理: OPTICS聚类及Python实现

1. 基本原理 OPTICS&#xff08;Ordering Points To Identify the Clustering Structure&#xff09;是一种基于密度的聚类算法&#xff0c;可视为DBSCAN的改进版本。它能够识别不同密度的簇&#xff0c;并自动发现数据中的层次化聚类结构&#xff0c;适用于复杂分布的数据集…

PyCharm 在 Linux 上的完整安装与使用指南

PyCharm 在 Linux 上的完整安装与使用指南—目录 一、PyCharm 简介二、下载与安装1. 下载 PyCharm2. 安装前的依赖准备3. 安装步骤方法 1&#xff1a;通过 Snap 安装&#xff08;推荐&#xff09;方法 2&#xff1a;手动安装&#xff08;从官网下载 .tar.gz 文件&#xff09;方…

【React】路由器 React-Router

安装路由模式路由组件和属性 (Link、NavLink、Outlet、Routes、Navigate、element)路由传参 ( Hook&#xff1a;useParams 、useSearchParams )路由跳转&#xff08;Hook&#xff1a;useNavigate&#xff09;路由的构建 前端路由指的是一种将浏览器URL与特定页面或视图关联起来…