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

HTML与数据抓取:GET与POST方法详解

讲GET和POST就不能只讲GET和POST

你要讲HTTP请求的基本概念:

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,主要用于Web浏览器与Web服务器之间的数据通信。HTTP是一个基于请求-响应模式的应用层协议,它定义了客户端如何向服务器发送请求以及服务器如何回应这些请求;

你要讲HTTP请求方法:

HTTP请求方法是指定对资源执行特定操作的指令。以下是几种主要的HTTP请求方法:

  • GET:用于请求读取数据,通常用来获取网页内容或其他资源;
  • POST:用于向服务器提交数据,常用于提交表单或上传文件;
  • PUT:用于更新指定资源或创建新资源(如果该资源不存在的话);
  • DELETE:用于删除指定资源;
  • HEAD:类似于GET请求,但只获取响应头部信息而不返回实体内容;
  • OPTIONS:用于获取服务器支持的请求方法;
  • PATCH:用于对资源进行部分更新;

你要讲HTTP状态消息:

HTTP状态消息(也称为状态行)是服务器响应的一部分,它告知客户端关于请求处理的结果。状态行由三部分组成:HTTP版本、状态码和原因短语(Reason Phrase)。其中,状态码是一个三位数字的代码,用来表示具体的响应类型;原因短语是对状态码的文字描述,帮助理解和解释状态码的意义;

HTTP 状态码分类

  • 1xx (信息性响应)表示请求已被接收,继续处理
  • 2xx (成功)表示请求已成功被服务器接收、理解并接受
  • 3xx (重定向):表示需要进一步的操作以完成请求;
  • 4xx (客户端错误):表示请求包含语法错误或者无法完成请求;
  • 5xx (服务器错误):表示服务器在尝试处理请求时发生了错误;

今天,我们重点讲解GET和POST。

1. 基本概念

GET请求

  • GET:请求数据的读取操作,常用于获取网页内容;
  • 参数附加在URL后:请求参数以查询字符串的形式(?key1=value1&key2=value2)附加在URL之后;
  • 数据通过URL传输:由于参数是URL的一部分,浏览器会记录访问的URL,这意味着用户可以直接分享链接或者将其保存为书签;

POST请求

  • POST:提交数据给服务器,通常用于提交表单或上传文件;
  • 参数包含在请求体中:与GET不同,POST请求的参数位于请求体(body)内,而不是URL中,这提供了更大的灵活性和安全性;
  • 数据隐蔽性:因为数据不显示在URL中,所以相对更隐蔽,减少了敏感信息泄露的风险;

2.GET和POST请求的区别

我们用更通俗易懂的方式来解释GET和POST请求的不同之处。想象一下你正在与朋友通信,你可以通过两种方式传递信息:写信(GET)或打电话(POST);

GET 请求 - 写信

  • 数据可见:就像你在明信片上写下消息一样,所有人都能看到上面的内容。在HTTP中,GET请求的数据会显示在URL中,任何人都可以通过浏览器地址栏看到这些信息
  • 长度限制:明信片的空间有限,你只能写少量的文字。同样,GET请求的参数是附加在URL后面的,而URL有长度限制,通常建议不超过2048个字符
  • 缓存支持:一旦你寄出了一张明信片,邮局可能会保存副本以便快速处理重复的请求。类似地,GET请求可以被浏览器缓存,下次访问相同链接时可以直接从缓存中读取,提高速度;
  • 幂等性:不管你寄多少次同样的明信片,收到的人看到的信息都是一样的。GET请求是幂等的,意味着多次相同的请求应该产生相同的结果,不会引起副作用;

POST 请求 - 打电话

  • 数据隐藏:当你打电话时,通话内容只有你和对方能听到。POST请求将数据放在请求体中,不会出现在URL里,因此更加私密,适合传递敏感信息;
  • 无长度限制:电话交谈没有时间限制,你可以聊很久。POST请求也没有对数据量的具体限制,理论上可以发送任意大小的数据,实际长度取决于服务器配置;
  • 不缓存:每次打电话都是新的对话,不能直接使用之前的通话记录。POST请求一般不会被缓存,确保每次提交的数据都是最新的,这对于动态数据(如表单提交)非常重要;
  • 非幂等性:如果你多次拨打同一个电话号码,可能会导致不同的结果,比如多次订购商品。POST请求是非幂等的,多次提交可能会产生不同的效果,因此需要小心避免重复提交;

HTTP 明文传输的风险

无论是GET还是POST请求,它们仅仅是HTTP协议中的两种不同请求方法,在传输层面上都使用相同的TCP/IP协议栈。当不带参数时,两者在报文格式上的主要区别仅在于请求行中的方法名(一个是GET,另一个是POST)。因此,只要使用的是标准HTTP协议,所有的通信都是以明文形式在网络上传输。这意味着任何位于客户端和服务器之间的中间节点(如路由器、代理服务器等)都可以轻松捕获并读取数据包的内容。对于敏感信息(如登录凭证、个人资料、支付信息等),这种明文传输带来的风险显然是不可接受的;

HTTPS 加密传输


为了确保数据的安全性和隐私性,HTTPS应运而生。HTTPS通过结合HTTP协议与SSL/TLS加密技术,提供了更安全的数据传输方式:

  • 加密通信:HTTPS对所有传输的数据进行加密,即使有人截获了数据包,也无法轻易解读其中的内容;
  • 数据完整性:SSL/TLS不仅加密数据,还保证了数据的完整性,防止数据在传输过程中被篡改;
  • 身份验证:HTTPS使用数字证书来验证服务器的身份,确保客户端连接的是正确的服务器,而不是恶意第三方伪装的服务器;

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

相关文章:

HTML与数据抓取:GET与POST方法详解

讲GET和POST就不能只讲GET和POST 你要讲HTTP请求的基本概念: HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,主要用于Web浏览器与Web服务器之间的数据通信。HTTP是一个基于…...

【es6复习笔记】模板字符串(3)

介绍 模板字符串是 ES6 引入的一种新的字符串声明方式,它使用反引号()来定义字符串,而不是单引号()或双引号(")。模板字符串可以包含变量、表达式和换行符,这使得它…...

cursor保存更改操作技巧

1. 当我们在agent模式时,要求cursor更改代码时,cursor回答后,就已经更改了代码了,这时候就可以对程序进行编译和测试, 不一定先要点” accept“, 先测试如果没有问题再点“accept”,这样composer就会多一条…...

ASP.NET |日常开发中定时任务详解

ASP.NET |日常开发中定时任务详解 前言一、定时任务的概念与用途1.1 定义1.2 应用场景 二、在ASP.NET中实现定时任务的方式2.1 使用System.Timers.Timer2.2 使用Quartz.NET 三、定时任务的部署与管理3.1 部署考虑因素3.2 管理与监控 结束语优质源码分享 ASP.NET &am…...

【零基础保姆级教程】制作自己的数据集(二)——Labelme的安装与使用及常见的报错解决方法

前段时间安装了Labelimg,网上有些博客写着Labelme能进行语义分割的标注,但UI窗口就那么大找不着选项,只能打矩形框,为了能够标注自己的分割数据集,遂写下该教程以供参考。 采用Labelimg进行目标检测标注的教程如下。 …...

Move AI技术浅析(二):输入与预处理

一、视频输入模块 1.1 视频输入步骤详解 视频输入模块的主要任务是接收视频数据,并将其转换为后续处理所需的格式。具体步骤: 1.1.1 视频读取 步骤:从文件系统、网络流或摄像头读取视频数据。技术:使用 OpenCV 的 cv2.VideoCa…...

实践KDTS-WEB从mysql迁移到kingbasev9

数据库国产化替代数据迁移是一个复杂且关键的过程。这涉及到将原有数据库中的数据准确、完整地迁移到新的国产数据库中,同时确保数据的完整性和一致性。人大金仓提供了强大的数据库迁移工具(KDTS)对同构、异构数据库数据迁移; 数…...

WebGIS实战开源项目:智慧机场三维可视化(学习笔记)

From:新中地 1.简介 智慧机场解决方案,基于数字化大平台,融合AI、大数据、IoT、视频云、云计算等技术,围绕机场“运控、安防、服务”三大业务领域,构建“出行一张脸”及“运行一张图”两大场景化解决方案。 https://…...

2025年PMP项目管理考试时间一览表

PMP认证是全球项目管理领域公认的权威认证,它不仅能证明你在项目管理方面的专业水平,还能大大提升你的职场竞争力! 随着企业对项目管理人才的需求不断增长,获得PMP认证将为你带来更多的职业机会和高薪职位。 为了帮助大家合理安排…...

20241224在ubuntu20.04.6下的终端分屏软件terminator的安装以及使用

20241224在ubuntu20.04.6下的终端分屏软件terminator的安装以及使用 2024/12/24 18:35 百度:终端分屏软件 https://blog.csdn.net/weixin_49693003/article/details/143683326 可以实现终端分屏的工具:terminator 安装: sudo apt-get insta…...

打造高效租赁小程序让交易更便捷

内容概要 在如今节奏飞快的商业世界里,租赁小程序如同一只聪明的小狐狸,迅速突围而出,成为商家与消费者之间的桥梁。它不仅简化了交易流程,还在某种程度上将传统租赁模式带入了互联网时代。越来越多的企业意识到,这种…...

光谱相机在农业中的具体应用案例

作物生长监测与产量预测 美国爱荷华州玉米种植园:农场主使用无人机搭载高光谱相机,定期对玉米田进行拍摄。通过分析光谱数据,获取玉米的叶面积指数、叶绿素含量等生长参数。在玉米生长关键期,依据这些参数及时调整施肥和灌溉方案…...

Linux RTC 驱动框架

目录 一、实时时钟(RTC)介绍1.1 概述1.2 功能1.3 应用场景1.4 工作原理1.5 对外接口1.6 常见 RTC 芯片1.7 在 Linux 系统中的应用1.8 注意事项 二、Linux 内核 RTC 驱动框架2.1 相关源码文件介绍2.2 核心数据结构2.2.1 struct rtc_device2.2.2 rtc_class…...

msyql数据库读写分离搭建

一.mysql读写分离:缓解主服务器的压力1.概念:主服务器写数据,从服务器读数据2.实现方法:客户端分离: 开发手动分离地址服务端分离: 数据库与应用之间加一个中间件,分离读写请求mysql-proxy,mysql-route,maxscaleamoeba,cobar,mycat2atlas,kingshard,vitees3.mycat配置方法:冷配…...

WWW23-多行为级联|级联图卷积网络的多行为推荐

论文:https://arxiv.org/abs/2303.15720 代码:https://github.com/SS-00-SS/MBCGCN 这篇论文MB-CGCN和上一篇CRGCN是同一个团队的,都是级联的方式。一个用了残差,一个用了特征转换,文章最后有discussion讨论了两者的不…...

【EthIf-14】EthIfGeneral容器配置-02

1.实际EthIfGeneral的配置实例 关闭DET接口开启发送确认中断开启接收中断主周期接收timeout主周期 2. 代码实例参考 阅读此部分代码,搞清楚代码分为几个section,大概瞄一眼就好,不用深究其含义,只需有一个宏观的层次结构的映像即可。 //Appl/GenData/EthIf_Cfg.h #...

近实时”(NRT)搜索、倒排索引

近实时(Near Real-Time, NRT)搜索 近实时(NRT)搜索是 Elasticsearch 的核心特性之一,指的是数据在被写入到系统后,可以几乎立即被搜索和查询到。虽然它不像传统数据库那样完全实时,但它的延迟通…...

Ubuntu20.04安装openMVS<成功>.colmap<成功>和openMVG<失败(已成功)>

一、安装openMVS 参考官方文档 sudo apt-get -y install git mercurial cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev eigen git clone https://gitlab.com/libeigen/eigen --branch 3.4 mkdir eigen_build cd eigen_build &&\cmake . ../eigen -…...

从测试服务器手动热部署到生产环境的实现

为了实现从测试服务器(192.168.0.255)手动热部署到生产环境(172.168.20.100),可以采用多种方法。以下是详细的步骤和最佳实践,帮助你实现这一目标。 1. 准备生产环境 确保生产环境上的 Docker 和 Docker …...

【c++高阶DS】图

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 目录 01.并查集02.图的介绍03.图的存储结构03.1.邻接矩阵03.2.邻接表03.3.矩阵版本代码实现03.4.邻接表版本代码实现 完整代码: 01.并查集 在一些应用问题中,需要将…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

华为云AI开发平台ModelArts

华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析

1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器&#xff08;TI&#xff09;推出的一款 汽车级同步降压转换器&#xff08;DC-DC开关稳压器&#xff09;&#xff0c;属于高性能电源管理芯片。核心特性包括&#xff1a; 输入电压范围&#xff1a;2.95V–6V&#xff0c;输…...

智能体革命:企业如何构建自主决策的AI代理?

OpenAI智能代理构建实用指南详解 随着大型语言模型&#xff08;LLM&#xff09;在推理、多模态理解和工具调用能力上的进步&#xff0c;智能代理&#xff08;Agents&#xff09;成为自动化领域的新突破。与传统软件仅帮助用户自动化流程不同&#xff0c;智能代理能够自主执行工…...

Docker环境下安装 Elasticsearch + IK 分词器 + Pinyin插件 + Kibana(适配7.10.1)

做RAG自己打算使用esmilvus自己开发一个&#xff0c;安装时好像网上没有比较新的安装方法&#xff0c;然后找了个旧的方法对应试试&#xff1a; &#x1f680; 本文将手把手教你在 Docker 环境中部署 Elasticsearch 7.10.1 IK分词器 拼音插件 Kibana&#xff0c;适配中文搜索…...