百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

如何正确认识 HTTP(如何正确认识伟大建党精神的时代价值与实践要求?)

zhezhongyun 2025-03-13 22:04 43 浏览

#头条创作挑战赛#

HTTP(HyperText Transfer Protocol)是超文本传输协议。它是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。 HTTP 是一种协议规范,这种规范记录在文档上,为真正通过 HTTP 进行通信的 HTTP 的实现程序。

HTTP 包含命令和传输信息,不仅可用于Web 访问,也可用于其他因特网,内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

HTTP 也是一个客户端、服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端 是网站。通过使用 Web 浏览器、网络爬虫或其他工具,客户端发起一个到服务器上指定端口(默 认端口为 80)的 HTTP 请求。当在浏览器的地址框中输入一个 URL 或是单击一个超级链接时, URL 就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将 Web 服务器上站点的网页 代码提取出来,并翻译成漂亮的网页。

HTTP 是基于客户 / 服务器模式,且面向连接的。HTTP 定义了 Web 客户端如何从 Web 服务器 请求 Web 页面,以及服务器如何把 Web 页面传送给客户端。HTTP 采用了请求 / 响应模型。客户 端向服务器发送一个请求,请求中包含请求的方法、URL、协议版本、请求头部和请求数据。服 务器以一个状态行作为响应,响应的内容包括协议的版本、成功或错误代码、服务器信息、响应 头部和响应数据。

典型的 HTTP 请求 / 响应的处理步骤如下:

(1)客户端与 Web 服务器建立连接:一个 HTTP 客户端,通常是浏览器,与 Web 服务器的 HTTP 端口(默认为 80)建立一个 TCP 连接。例如,https://www.baidu.com。

(2)客户端向 Web 服务器发送 HTTP 请求:通过 TCP 连接,客户端向 Web 服务器发送一个 文本的请求,该请求头由请求行、请求头部、空行和请求数据四部分组成。

(3)Web 服务器接收请求并返回相应的文件作为应答:Web 服务器解析请求,定位请求资源。 服务器将资源复本写到 TCP,由客户端读取。一个响应头由状态行、响应头部、空行和响应数据 四部分组成。

(4)客户端与 Web 服务器关闭连接:如果 connection 模式为 close,则服务器主动关闭 TCP 连 接,客户端被动关闭连接,释放 TCP 连接;如果 connection 模式为 keep-alive,则该连接会保持一 段时间,在该时间内可以继续接收请求。 (5)客户端浏览器解析 HTML 内容:客户端浏览器首先解析状态行,查看请求是否成功的状 态代码。然后解析每一个响应头,客户端浏览器读取响应数据 HTML,根据 HTML 的语法对其进 行格式化,并在浏览器窗口中显示。

HTTP/1.1 中共定义了 8 种方法来以不同方式操作指定的资源。GET 和 POST 是最常见的 HTTP 方法。此外,还包括 DELETE、HEAD、OPTIONS、PUT、TRACE 和 CONNECT 方法。 这里介绍一下常用的 HTTP 方法,其对爬取网页有很大的作用。

(1)GET 请求方式:使用 GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个“?” 11 Scrapy 网络爬虫知识介绍 第 2 章 代表 URL 的结尾及附带参数的开始,参数用 key=value 键值对的方式书写,参数和参数之间用“&” 符号隔开。一般 GET 请求参数的大小受限,最大不超过 1024。由于参数明文地显示在了 URL 上面, 因此不太适合传递私密的数据。

(2)POST请求方式:POST方法将请求参数封装在HTTP请求的请求体中,以名称/值的形式出现, 可以传输大量的数据,在 URL 中看不到具体的请求数据,比较安全,适合数据量大的数据发送。 POST 请求一般用于表单数据的提交或上传文件。

HTTP 状态码由 3 个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个十进制 数字没有分类的作用。HTTP 状态码表示请求是否被理解或被满足。HTTP 状态码共分为 5 种类型:

(1)1xx :信息性状态码,表示接收的请求正在处理。

(2)2xx :成功状态码,表示请求已被成功地接收并处理。

(3)3xx :重定向状态码,表示需要进行附加操作才能完成请求。

(4)4xx :客户端错误状态码,表示请求有语法错误或请求无法实现

(5)5xx :服务器错误状态码,表示服务器在处理请求的过程中发生了错误。

下面是常见的 HTTP 状态码:

(1)200 :客户端请求成功。

(2)301 :永久性重定向。该状态码表示请求的资源已被分配了新的 URL,以后应使用资源 现在所指的 URL。

(3)303 :该状态码表示由于请求对应的资源存在着另一个 URL,应使用 GET 方法定向获取 请求的资源。

(4)400 :服务器未能理解请求。

(5)403 :对被请求页面的访问被禁止。

(6)404 :服务器无法找到被请求的页面。

(7)500 :服务器发生不可预期的错误,即内部服务器错误。

(8)503 :请求未完成。服务器临时过载或宕机,不能处理客户端的请求。一段时间后可能会 恢复正常。

相关推荐

Chinese vice premier calls for multilateralism at Davos

DAVOS,Switzerland,Jan.21(Xinhua)--ChineseVicePremierDingXuexiangdeliveredaspeechatthe...

用C++ Qt手把手打造炫酷汽车仪表盘

一、项目背景与核心价值在车载HMI(人机交互界面)开发领域,虚拟仪表盘是智能座舱的核心组件。本项目基于C++Qt框架实现一个具备专业级效果的时速表模块,涵盖以下技术要点:Qt图形绘制核心机制(QPa...

系列专栏(八):JS的第七种基本类型Symbols

ES6作为新一代JavaScript标准,已正式与广大前端开发者见面。为了让大家对ES6的诸多新特性有更深入的了解,MozillaWeb开发者博客推出了《ES6InDepth》系列文章。CSDN...

MFC界面开发工具BCG v31.1 - 增强功能区、工具箱功能

点击“了解更多”获取工具亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBarProfessionalforMFC和BCGSuiteforMFCv31.2正式发布!新版本支...

雅居乐上调出售吉隆坡项目保留金,预计亏损扩大至6.64亿元

1月2日,雅居乐集团(03383.HK)发布有关出售一家附属公司股权披露交易的补充公告。此前雅居乐集团曾公告,2023年11月8日(交易时段后),集团子公司AgileRealEstateDeve...

Full text: Address by Vice Premier Ding Xuexiang's at World Economic Forum Annual Meeting 2025

DAVOS,Switzerland,Jan.21(Xinhua)--ChineseVicePremierDingXuexiangonTuesdaydeliveredasp...

手机性能好不好 GPU玄学曲线告诉你

前言各位在看测试者对手机进行评测时或许会见过“安卓玄学曲线”,所谓中的安卓玄学曲线真名为“ProfileGPURendering”。大多数情况下,在系统“开发者选项中被称为“GPU显示配置文件”或...

小迈科技 X Hologres:高可用的百亿级广告实时数仓建设

通过本文,我们将会介绍小迈科技如何通过Hologres搭建高可用的实时数仓。一、业务介绍小迈科技成立于2015年1月,是一家致力以数字化领先为优势,实现业务高质量自增长的移动互联网科技公司。始...

vue3新特征和所有的属性,方法汇总及其对应源码分析

vue3新特征汇总与源码分析(备注:vue3使用typescript编写)何为应用?constapp=Vue.createApp({})app就是一个应用。应用的配置和应用的API就是app应用...

China's stability redefines global trade in a volatile era

ContainersareunloadedatQingdaoPort,eastChina'sShandongProvince,December10,2024.[Photo/X...

QML 实现图片帧渐隐渐显轮播

前言所谓图片帧渐隐渐显轮播就是,一组图片列表,当前图片逐渐改变透明度隐藏,同时下一张图片逐渐改变透明度显示,依次循环,达到渐隐渐显的效果,该效果常用于图片展示,相比左右自动切换的轮播方式来说,这种方式...

前端惊魂夜:我竟在CSS里写出了JavaScript?

凌晨两点,写字楼里只剩下我工位上的一盏孤灯。咖啡杯见底,屏幕的光映在疲惫的眼镜片上。为了实现一个极其复杂的动态渐变效果,我翻遍了MDN文档,试遍了所有已知的CSS技巧,却始终差那么一口气。“要是CSS...

10 个派上用场的 Flutter 小部件

尝试学习一门新语言可能会令人恐惧和厌烦。很多时候,我们希望我们知道早先存在的某些功能。在今天的文章中,我将告诉你我希望早点知道的最方便的颤振小部件。SpacerSpacer创建一个可调整的空白空...

让我的 Flutter 代码整洁 10 倍的 5 种

如果你曾在Flutter中使用过SingleTickerProviderStateMixin来制作动画,猜猜怎么着?你已经使用过Mixin了——恭喜你,你已经处于一段你甚至不知道的关...

daisyUI - 主题漂亮、代码纯净!免费开源的 Tailwind CSS 组件库

漂亮有特色的CSS组件库,组件代码非常简洁,也支持深度定制主题、定制组件,可以搭配Vue/React等框架使用。关于daisyUIdaisyUI是一款极为流行的CSSUI组件库,...