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

应用层之 HTTP 协议

HTTP 协议

        HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些 其他的资源, 比如图片, 视频, 音频等二进制的数据。浏览器获取到网页,就是基于 HTTP 的,也就相当于 浏览器 和 服务器 之间的桥梁。

        目前我们主要使用的还是 HTTP1.1

HTTP 协议的工作过程

        当我们在浏览器中输入一个 "网址", 此时浏览器就会给对应的服务器发送一个 HTTP 请求. 对方服务器收 到这个请求之后, 经过计算处理, 就会返回一个 HTTP 响应.

        事实上, 当我们访问一个网站的时候, 可能涉及不止一次的 HTTP 请求/响应 的交互过程。可以通过 fiddler 来抓包显示。

        Fiddler 相当于一个 "代理". 浏览器访问 sogou.com 时, 就会把 HTTP 请求先发给 Fiddler, Fiddler 再把请求转发给 sogou 的服务器. 当 sogou 服务器返回数据时, Fiddler 拿到返回数据, 再把数据交给浏览器. 因此 Fiddler 对于浏览器和 sogou 服务器之间交互的数据细节, 都是非常清楚的.(相当于是一个跑腿小弟)

HTTP 请求 (Request)

认识 URL

        平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符). 互联网上的每个文件都有一个唯一的URL。

URL 最关键的四个部分:1. 域名 / IP,2. 端口号,3. 带层次的路径,4. 查询字符串。

例如:https://v.bitedu.vip/personInf/student?userId=10000&classId=100

        https : 协议方案名. 常见的有 http 和 https, 也有其他的类型. (例如访问 mysql 时用的 jdbc:mysql )

        user:pass : 登陆信息. 现在的网站进行身份认证一般不再通过 URL 进行了. 一般都会省略

        v.bitedu.vip : 服务器地址. 此处是一个 "域名", 域名会通过 DNS 系统解析成一个具体的 IP 地址. 

        端口号: 上面的 URL 中端口号被省略了. 当端口号省略的时候, 浏览器会根据协议类型自动决定使用 哪个端口. 例如 http 协议默认使用 80 端口, https 协议默认使用 443 端口.

        /personInf/student : 带层次的文件路径.

        userId=10000&classId=100 : 查询字符串(query string). 本质是一个键值对结构。以 开头,键值对之间使用 & 分隔,键和值之间使用 = 分隔。

        片段标识: 此 URL 中省略了片段标识,片段标识主要用于页面内跳转, 通过不同的片段标识跳转到文档的不同章节。

关于 URL encode

        像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现. 比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义.

"+" 被转义成了 "%2B"

urldecode就是urlencode的逆过程,就是解码跟编码的过程。

相关文章:

应用层之 HTTP 协议

HTTP 协议 HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些 其他的资源, 比如图片, 视频, 音频等二进制的数据。浏览器获取到网页&#…...

解决Word文档中页眉有部分有,有部分没有的问题

问题描述:一个Word文档中,在页眉上添加文档名称和页码,但是有的有,有的没有,选择“链接到前一节”也无法解决该问题。 原因分析:页眉页脚中,勾选了“首页不同”的选项,如下图&#…...

Python爬虫基础知识学习(以爬取某二手房数据、某博数据与某红薯(书)评论数据为例)

一、爬虫基础流程 爬虫的过程模块化,基本上可以归纳为以下几个步骤: 1、分析网页URL:打开你想要爬取数据的网站,然后寻找真实的页面数据URL地址; 2、请求网页数据:模拟请求网页数据,这里我们介…...

JavaScript-输入输出语句

输出语句 document.write( 输出的内容 ) 语法&#xff1a;document.write( 输出的内容) 作用&#xff1a;内容会显示在网页上 如果输出的内容是标签&#xff0c;也会被解析为网页元素 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head>&…...

peft+llama3训练自定义数据

要微调自己的模型训练 LLaMA 3&#xff0c;则需要准备一个 JSON 格式的数据集&#xff0c;其中每个条目包含输入文本和相应的标签&#xff08;如果有的话&#xff09;。以下是一个 JSON 数据集的示例格式&#xff1a; [{"input": "这是一个输入样本。",&q…...

vue+ts+vite+pinia+less+echarts 前端可视化 实战项目

1.初始化前端 输入 npm init vuelatest 命令 然后 选择需要的插件2.构建完成后 在终端切换到vue-project文件夹下 npm install 下载依赖 3.下载 less样式 npm install less less-loader -D 4.下载axios npm install axios 5.下载echarts npm install echarts -S 6.引入中国…...

文心一言指令多样化,你知道的有哪些?

文心一言的指令非常多样化&#xff0c;可以根据用户的需求和场景进行灵活调整。以下是一些常见的文心一言指令示例&#xff1a; 知识问答&#xff1a; 帮我解释一下什么是芯片&#xff1f;中国的历史上有哪些重要的朝代&#xff1f;人工智能在未来会有哪些发展趋势&#xff1f;…...

QT状态机8-使用恢复策略自动恢复属性

当状态分配的属性不再活动时,可能希望将其恢复到初始值,通过设置全局的恢复策略可以使状态机进入一个状态而不用明确制定属性的值。 QStateMachine machine; machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties);当设置了恢复策略以后,状态机将自动恢复所有…...

第83天: 代码审计-PHP 项目RCE 安全调试追踪代码执行命令执行

案例一&#xff1a;CNVD拿1day-RCE命令执行-百家CMS 这里用代码审计系统搜索system&#xff0c;可以利用的是第一种 打开看细节 查找函数引用 查找$_file第一次出现的地方 这个时候就明白了&#xff0c;必须上传文件&#xff0c;然后利用文件名&#xff0c;去执行system命令 …...

学习Uni-app开发小程序Day8

前面几天&#xff0c;学习了vue的button组件、input组件&#xff0c;vue模版语法、计算属性等&#xff0c;在昨天又根据前面学习的&#xff0c;跟着做了一个小的购物车功能&#xff0c;今天学习了侦听器和计算属性 计算属性 computed computed是一个只读的状态,如果要修改…...

OpenHarmony标准设备应用开发(二)——布局、动画与音乐

本章是 OpenHarmony 标准设备应用开发的第二篇文章。我们通过知识体系新开发的几个基于 OpenHarmony3.1 Beta 标准系统的样例&#xff1a;分布式音乐播放、传炸弹、购物车等样例&#xff0c;分别介绍下音乐播放、显示动画、动画转场&#xff08;页面间转场&#xff09;三个进阶…...

mysql字段乱序 information_schema

select COLUMN_NAME from information_schema.columns where table_namecollect_column_info and table_schema nz; 返回ASCII排列 导致 sqoop import \ --connect "jdbc:mysql://your_host/collect" \ --username your_username \ --password your_password \ --t…...

使用php和redis实现分布式锁

实现分布式锁是在分布式环境中确保资源独占性的重要手段。在这里&#xff0c;我将使用 PHP 和 Redis 来展示如何实现基于 Redis 的分布式锁。 首先&#xff0c;我们需要使用 Redis 的 SET 指令来尝试获取锁&#xff0c;并设置一个过期时间&#xff0c;确保锁不会永久存在。在 …...

大龄程序员是否要入职嵌入式python岗位?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Python的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 是否要做嵌入式 Python 取决于…...

STL—string类(1)

一、string类 1、为什么要学习string&#xff1f; C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP&#xff08;面向对象…...

科技查新中化工领域查新点如何确立与提炼?案例讲解!

我国化工科技查新工作始于1985年&#xff0c;至今经历了30多年的发展。化工类课题包含化工、炼油、 冶金、能源、轻工、石化、环境、医药、环保和军工等&#xff0c; 具有物质种类繁多、制备工艺复杂等特点。因此&#xff0c;本文结合化工查新项目实例&#xff0c;总结提高化工…...

国网698.45报文解析工具

本文分享一个698.45协议的报文解析工具&#xff0c;此报文解析工具功能强大&#xff0c;可以解析多种国网数据协议。 下载链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主要界面如下&#xff1a; 本工具内置698.45数据协议&#xff0c; 即可调用word…...

留学资讯 | 2024英国学生签证申请需要满足哪些条件?

英国移民局于2020年9月10日发布了《移民规则变更声明: HC 707》&#xff0c;对学生签证制度进行了全面改革。该法案于2020年10月5日正式生效。根据此法案&#xff0c;新的学生签证——The Student and Child Student Routes学生和儿童学生路线&#xff0c;将替代原先的Tier 4学…...

Python 中的分步机器学习

1.安装 Python 和 SciPy 平台。 # Check the versions of libraries# Python version import sys print(Python: {}.format(sys.version)) # scipy import scipy print(scipy: {}.format(scipy.__version__)) # numpy import numpy print(numpy: {}.format(numpy.__version__)…...

C++错题集(持续更新ing)

Day 1 一、选择题 解析&#xff1a; 在数字不会溢出的前提下&#xff0c;对于正数和负数&#xff0c;有&#xff1a; 1&#xff09;左移n位&#xff0c;相当于操作数乘以2的n次方&#xff1b; 2&#xff09;右移n位&#xff0c;相当于操作数除以2的n次方。 解析&#xff1a…...

【Perplexity商业新闻搜索实战指南】:2024年最高效情报获取法,3步锁定竞对动态与市场拐点

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity商业新闻搜索的核心价值与定位 Perplexity 商业新闻搜索并非传统聚合型RSS阅读器&#xff0c;而是一个以语义理解与实时可信信源协同驱动的智能情报引擎。它专为投资者、企业战略团队与合规分析师设…...

为什么你的Perplexity搜不出科学健身计划?NIST认证信息检索模型原理首度公开

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么你的Perplexity搜不出科学健身计划&#xff1f; Perplexity 作为一款以“实时网络检索大模型推理”为特色的AI搜索工具&#xff0c;其底层机制决定了它并非专为结构化健康决策而优化。当你输入“…...

【2026 最新】Web 安全完整学习指南 红队全套技能栈

0x00 技能栈 依照红队的流程分工&#xff0c;选择适合自己的技能栈发展。 越接近中心的能力点越贴近web技术栈&#xff0c;反之亦然。可以根据自身情况&#xff0c;选择技术栈的发展方向。 0x01 漏洞理解篇(Vulnerability) 1.1 前端 同源策略 & CSP & JOSNP 跨域…...

Zotero老用户必看!文献管理后的阅读断层,Scholaread如何让你的千篇文献库“活“起来?

你用Zotero管理了上千篇文献&#xff0c;却在阅读时不得不打开知云、翻译狗&#xff0c;笔记分散在多个软件&#xff0c;标注无法同步。这种"管理在Zotero&#xff0c;阅读在别处"的割裂体验&#xff0c;正在吞噬你的科研效率。本文将展示Scholaread如何通过一键导入…...

魔兽争霸3终极优化指南:如何用WarcraftHelper解决Windows兼容性问题

魔兽争霸3终极优化指南&#xff1a;如何用WarcraftHelper解决Windows兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Win…...

从IGS文件命名变迁,看GNSS数据处理流程的演进与自动化机遇

从IGS文件命名变迁透视GNSS数据处理的智能化演进 在卫星导航定位领域&#xff0c;IGS&#xff08;国际GNSS服务组织&#xff09;产品文件命名规则的每一次调整都像一面镜子&#xff0c;映射出整个行业的技术演进方向。2022年底从V1.0到V2.0命名规范的升级&#xff0c;绝非简单的…...

3分钟掌握Typora LaTeX主题:用Markdown写出专业学术论文的终极指南

3分钟掌握Typora LaTeX主题&#xff1a;用Markdown写出专业学术论文的终极指南 【免费下载链接】typora-latex-theme 将Typora伪装成LaTeX的中文样式主题&#xff0c;本科生轻量级课程论文撰写的好帮手。This is a theme disguising Typora into Chinese LaTeX style. 项目地…...

别让拼写检查器坑了你的代码!Visual Studio中自定义排除字典(exclusion.dic)的完整用法

深度定制Visual Studio拼写检查&#xff1a;打造团队专属的exclusion.dic解决方案 当你在Visual Studio中看到熟悉的红色波浪线时&#xff0c;第一反应可能是代码出现了语法错误。但仔细一看&#xff0c;却发现是拼写检查器在提醒你"Hint"不是一个有效的英文单词。这…...

ARM架构LDRSB/LDRSH有符号加载指令详解

1. ARM架构中的有符号加载指令概述在嵌入式系统和低功耗应用领域&#xff0c;ARM处理器凭借其精简高效的指令集架构占据主导地位。内存加载指令作为处理器与外部存储交互的核心操作&#xff0c;其设计直接影响系统性能和数据处理的准确性。LDRSB&#xff08;Load Register Sign…...

SAP PP实战指南:从零到一掌握BOM创建、群组BOM配置与CS01核心操作

1. BOM基础概念与核心价值 物料清单&#xff08;Bill of Materials&#xff0c;简称BOM&#xff09;是制造业的DNA图谱&#xff0c;它用结构化数据描述产品从原材料到成品的完整演化路径。我第一次接触SAP PP模块时&#xff0c;项目经理指着屏幕上的BOM结构说&#xff1a;"…...