HTTP权威指南:1.5报文

《HTTP权威指南》----HTTP报文 提供更多有关请求的信息,用于客户端向服务器传递一些额外信息,用于客户端向服务器说明 是谁在发送请求、请求源于何处,以及客户端希望获得什么样的响应、客户端处理响应的能力(客户端的喜好及能力)。TTP报文就是在HTTP应用程序之间发送的数据块,这些数据块采用文本形式,以“元信息(meta-information)” 开头,元信息用于描述报文的内容及含义。报文是简单的格式化数据块,由三部分组成:起始行(start line),首部(header),包含数据的主体(body) 阅读详情
1.5 报文
现在我们来快速浏览一下HTTP 请求和响应报文的结构。第3 章会深入研究HTTP
报文。
HTTP 报文是由一行一行的简单字符串组成的。HTTP 报文都是纯文本,不是二进
制代码,所以人们可以很方便地对其进行读写1。图1-7 显示了一个简单事务所使用
的HTTP 报文。
GET /test/hi-there.txt HTTP/1.0
Accept: text/*
Accept-Language: en,fr
HTTP/1.0 200 OK
Content-type: text/plain
Content-length: 19
Hi! I’m a message!
起始行
首部
主体
(a) 请求报文(b) 响应报文
图1-7 由一行行的简单文本结构组成的HTTP 报文
注1: 有些程序员会抱怨HTTP 的语法解析太困难了,这项工作需要很多技巧,而且很容易出错,尤其是在
设计高速软件的时候更是如此。二进制格式或更严格的文本格式可能更容易处理,但大多数HTTP 程
序员都很欣赏HTTP 的可扩展性以及可调试性。
9
12 | 第1 章
从Web 客户端发往Web 服务器的HTTP 报文称为请求报文(request message)。从
服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的
HTTP 报文。HTTP 请求和响应报文的格式很类似。
HTTP 报文包括以下三个部分。
• 起始行
报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说
明出现了什么情况。
• 首部字段
起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为
了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首
部字段和添加新行一样简单。
• 主体
空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括
了要发送给Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起
始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意
的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含
文本。
简单的报文实例
图1-8 显示了可能会作为某个简单事务的一部分发送的HTTP 报文。浏览器请求资
源http://www.joes-hardware.com/tools.html。
在图1-8 中,浏览器发送了一条HTTP 请求报文。这条请求的起始行中有一个GET
命令,且本地资源为/tools.html。这条请求说明它使用的是1.0 版的HTTP 协议。请
求报文没有主体,因为从服务器上GET 一个简单的文档不需要请求数据。
服务器会回送一条HTTP 响应报文。这条响应中包含了HTTP 的版本号(HTTP/1.0)、
一个成功状态码(200)、一个描述性的原因短语(OK), 以及一块响应首部字
段,在所有这些内容之后跟着包含了所请求文档的响应主体。Content-Length
首部说明了响应主体的长度,Content-Type 首部说明了文档的MIME 类型。
10
HTTP概述 | 13
GET /tools.html HTTP/1.0
User-agent: Mozilla/4.75 [en] (Win98; U)
Host: www.joes-hardware.com
Accept: text/html, image/gif, image/jpeg
Accept-language: en
HTTP/1.0 200 OK
Date: Sun, o1 Oct 2000 23:25:17 GMT
Server: Apache/1.3.11 BSafe-SSL/1.38 (Unix)
Last-modified: Tue, 04 Jul 2000 09:46:21 GMT
Content-length: 403
Content-type: text/html
<HTML>
<HEAD><TITLE>Joe’s Tools</TITLE></HEAD>
<BODY>
<H1>Tools Page</H1>
<H2>Hammers</H2>
<P>Joe’s Hardware Online has the largest selection of
hammers on the earth.</P>
<H2><A NAME=drills></A>Drills</H2>
<P>Joe’s Hardware has a complete line of cordless
and corded drills, as well as the latest in
plutonium-powered atomic drills, for those big
around the house jobs.</P>...
</BODY>
</HTML>
客户端www.joes-hardware.com
(a)请求报文
(b)响应报文
请求起始行(命令)
请求首部
没有请求主体
响应起始行
(状态)
响应首部
响应主体
图1-8 http://www.joes-hardware.com/tools.html 的GET 事务实例
1.6 连接
概要介绍了HTTP 报文的构成之后,我们来讨论一下报文是如何通过传输控制协议
(Transmission Control Protocol,TCP)连接从一个地方搬移到另一个地方去的。
1.6.1 TCP/IP
HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节;它把联网的细节都
交给了通用、可靠的因特网传输协议TCP/IP。
TCP 提供了:
11
14 | 第1 章
• 无差错的数据传输;
• 按序传输(数据总是会按照发送的顺序到达);
• 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)。
因特网自身就是基于TCP/IP 的,TCP/IP 是全世界的计算机和网络设备常用的层次
化分组交换网络协议集。TCP/IP 隐藏了各种网络和硬件的特点及弱点,使各种类型
的计算机和网络都能够进行可靠地通信。
只要建立了TCP 连接,客户端和服务器之间的报文交换就不会丢失、不会被破坏,
也不会在接收时出现错序了。
用网络术语来说,HTTP 协议位于TCP 的上层。HTTP 使用TCP 来传输其报文数
据。与之类似,TCP 则位于IP 的上层(参见图1-9)。
HTTP 应用层
TCP 传输层
IP 网络层
网络特有的链路接口 数据链路层
物理网络硬件物理层
图1-9 HTTP 网络协议栈
1.6.2 连接、IP地址及端口号
在HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)
地址和端口号在客户端和服务器之间建立一条TCP/IP 连接。
建立一条TCP 连接的过程与给公司办公室的某个人打电话的过程类似。首先,要拨
打公司的电话号码。这样就能进入正确的机构了。其次,拨打要联系的那个人的分
机号。
在TCP 中,你需要知道服务器的IP 地址,以及与服务器上运行的特定软件相关的
TCP 端口号。
这就行了,但最初怎么获得HTTP 服务器的IP 地址和端口号呢?当然是通过URL
了!我们前面曾提到过,URL 就是资源的地址,所以自然能够为我们提供存储资源
的机器的IP 地址。我们来看几个URL:
12
HTTP概述 | 15
http://207.200.83.29:80/index.html
http://www.netscape.com:80/index.html
http://www.netscape.com/index.html
第一个URL 使用了机器的IP 地址,207.200.83.29 以及端口号80。
第二个URL 没有使用数字形式的IP 地址,它使用的是文本形式的域名,或者称为
主机名(www.netscape.com)。主机名就是IP 地址比较人性化的别称。可以通过一
种称为域名服务(Domain Name Service,DNS)的机制方便地将主机名转换为IP
地址,这样所有问题就都解决了。第2 章会介绍更多有关DNS 和URL 的内容。
最后一个URL 没有端口号。HTTP 的URL 中没有端口号时,可以假设默认端口号是80。
有了IP 地址和端口号,客户端就可以很方便地通过TCP/IP 进行通信了。图1-10 显
示了浏览器是怎样通过HTTP 显示位于远端服务器中的某个简单HTML 资源的。
(d)连接到161.58.228.45的端口80
(e)发送一条HTTP GET请求
(f)从服务器读取HTTP响应
客户端服务器
客户端服务器
客户端服务器
因特网
因特网
因特网
客户端服务器
因特网
(g)关闭连接
Screen shot needed
用户输入URL
http://www.joes-hardware.com:80/tools.html
(c)获取端口号(80)
www.joes-hardware.com
(a)获取主机名
(b)DNS
浏览器显示页面
图1-10 基本的浏览器连接处理
13
百度地图街景图像批量获取 由于个人研究需要在最近试了一下使用API获取百度地图街景图片,在此介绍一下基于我个人需求的百度街景批量获取方法,本文以Python编码作为主要方法,如果对零编码工具有需要的可以关注一下UA城市分析小组刚刚发布的街景图片获取工具。 街景图像用作区域细粒度空间指标测度需要解决几个问题。 1. 首先就是调用额度的限制,现在百度对于个人认证开发者每天可用的街景图像调用额度为100张,在不考虑购买额度上限(1万张600元,其实有经费的前提下可以直接考虑钞能力)的情况下动辄几千上万张的爬取数量会大大增加需要爬取的时间周 阅读详情

相关推荐

blenderproc 制作位姿估计数据集

blenderproc 制作位姿估计数据集 准备工作 1.首先需要去下载blenderproc的源码blenderproc,按照作者的readme文件进行编译。 2.其次需要下载bop_toolkit源码,链接如下bop_toolkit 3.说明:blenderproc主要用来生成数据,包括depth,rgb,位姿标签文件(scene_gt.json),bop_toolkit主要用来生成mask和mask_visib,scene_gt_info.json,用于判断物体的可见区域比例,如果遮挡太多考虑去掉。做

qq_43814359的博客 5697

HTTP协议的5个历史版本介绍

超文本传输协议HTTP(HyperText Transfer Protocol)是基于客户/服务器模式,且面向连接的请求-响应协议。 HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。 HTTP支持持久连接,在HTTP / 0.9和1.0中,连接在单个请求/响应对之后关闭。在HTTP / 1.1中,引入了保持活动机制,其中连接可以重用于多个请求。 可分为四个版本,分别是HTTP0.9/1.0/1.1/2/3。 1. HTTP5个版本介绍

梦否 3717

使用TensorFlow搭建FNN(全连接神经网络)的基本步骤

提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。 目录 一、定义神经网络的输入输出 二、搭建神经网络 1、定义一个神经层中的权重 2、定义一个神经层中的阈值 3、定义一个神经层中的激活函数 4、组合神经层为神经网络 三、搭建损失函数和优化器 1、搭建损失函数 首先介绍第一个函数这其中用到的共同的函数为 2、定义优化器 四、训练神经网络 全连接神经网络的网络结构如下: 一、定义神经网络的输入输出 神经网络最擅长的工作就是模拟非线性函数,即一个复杂的高..

qq_41959920的博客 4070

《HTTP权威指南》学习笔记

HTTP权威指南学习笔记第一章媒体类型 http给每种要通过web传输的对象都打上了名为MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)类型的数据格式标签。 Web服务器会为所有HTTP对象数据附加一个MIME类型。当Web浏览器从服务器中取回一个对象时,回去查看相关的MIME类型,看看它是否知道应该如何处理这

雲斷丶 4868

ISCE+Mintpy进行SBASInSAR处理(持续更新)

通过调用pairs_misregistration方法,利用safe_dict中的数据信息,对每对SLC数据进行配准误差的计算和分析,以确定数据之间的精确差异,为后续的时间序列处理提供基础。给定同一地区的两景SAR影像,经过配准之后,对应像元进行共轭相乘得到相位差,并形成干涉图,但是从干涉图中得到的相位差实际上是主值,即在(-π,π)呈周期性变化,为了还原其真实的相位差,必须在主值的基础上加或减整数倍的相位周期2π,把被卷叠的相位展开,才能顺利地反演出地面目标的高程和形变。

Cyy2511250589的博客 3735

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

LBP2900打印机虽然经典老旧,但在Win11上依然可以完美使用!许多网上教程都无视安装失败后的问题,在此分享一种全新、100%有效的方法来解决驱动连接错误和无法识别USB设备的问题。无论是新安装还是卸载重装,这个方法都适用。本文整合了通用驱动包,支持Win2000到Win11系统,操作简单,轻松摆脱安装困扰,享受无忧打印体验!

心开始の未来~的博客 2万+

HTTP权威指南读后感

本文是我花了大概一个月的时间读完《HTTP权威指南》一书,所做的高度总结,具体细节部分还是要参考书中内容。  通览此书,主要讲了两个内容,一是HTTP报文,二是HTTP连接。其他所有内容包括服务器,代理,缓存,安全,编码,重定向等等内容都是围绕二者展开的。  全书在内容上分为五部分,第一部分是HTTP:web的基础,概述HTTP报文和连接。第二部分是HTTP结构,讲了HTTP的各种组件,包括w

MarxWolf的博客 1123

Label Studio 数据标注平台,大模型预训练与微调必备

摘要:LabelStudio是一款开源数据标注工具,支持文本、图像等多种数据类型的标注。本文介绍了其安装方法(通过conda创建环境并pip安装)、基础使用流程(创建项目、导入数据、设置标签、标注导出)以及AI自动标注功能的实现。重点讲解了如何通过MLBackend集成LangChain模型实现自动标注:创建自定义模型类、构建预测链、处理返回结果,最后配置到LabelStudio项目中。该功能可显著提升标注效率,标注人员只需在AI预测结果基础上进行修正。

技术引领业务创新 289

《HTTP权威指南》之:HTTP报文

报文流: HTTP报文就是在HTTP应用程序之间发送的数据块,这些数据块采用文本形式,以“元信息(meta-information)” 开头,元信息用于描述报文的内容及含义。 将HTTP报文比喻成像河水一样流动,报文只能流向下游,不能流向上游。 术语 “流入(inbound)”、“流出(outbound)”、“上游(upstream)”、“下游(downstream)” 用来描述报文的传输方向。 常用的HTTP方法: GET: 从服务器获取一份文档; HEAD: 只从服务器获取文档的首部,不会返回实体的主

ArtAndLife的博客 290

YOLO11改进 - 卷积Conv | DEGConv(方向引导边缘门控卷积) : 空间分块、方向先验、轻量边缘增强

本文介绍了方向引导边缘门控卷积(DEGConv),一种专为增强边缘敏感度与方向感知能力设计的轻量级模块。该方法通过 Sobel 算子生成方向嵌入,结合条纹卷积提取水平与垂直边缘特征,并利用门控机制动态抑制背景噪声,从而精准捕捉细粒度结构。我们将 DEGConv 成功集成进 YOLO11,在 Backbone 的 SPPF 后及 Neck 的 P3、P4 分支中引入该模块以优化特征提取。实验证明,集成 DEGConv 的 YOLO11 在检测任务中表现优异,有效提升了模型对复杂边缘与方向特征的建模能力。

魔改工程师的博客 676

基于深度学习的商品标签识别系统:UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集

基于YOLO系列模型的商品标签识别系统能够有效解决商品信息提取的自动化问题。通过合理的数据集准备、模型训练和UI设计,我们可以实现一个功能强大的商品标签识别系统。希望本文提供的内容能够为大家提供有价值的帮助。

YOLO 474

HTTP权威指南-HTTP报文

在开始学习本章之前,先来提一些问题,什么是报文?如何创建报文?怎么去理解报文?以及报文的用处有哪些? 什么是报文? 可以这么去理解,如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了。 一、报文流 HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这新信息描述了报文的内容及含义,后面跟着可选的数据部分。 1.报文流入源端...

Kenny_2015的博客 192

【Cmder】--- Windows11 配置CMD神器 (超详细 持续更新中)

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。

秋知叶i 1万+

2.http权威指南:HTTP报文

报文的流向http报文的流向有流入(发送请求)和流出(返回结果)两种状态。报文的组成http报文是简单的格式化数据块。报文由三部分内容组成:(1)对报文进行描述的起始行; (2)包含属性的首部(header)块; (3)数据的主体部分;报文的语法类型:报文包含请求报文和响应报文两种。组成: (1)方法(GET、POST、HEAD等); (2)请求url; (3)版本; (4)状态吗;

linux_player_c(系统&开发) 602

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HTTP权威指南之HTTP报文

HTTP报文  报文的组成 HTTP报文是简单的格式化数据块,由三个部分组成:起始行(start line),首部(header),主体(body) 报文的语法 起始行:请求报文的起始行说明要做些什么,相应报文的起始行说明发生了什么。 请求行:包含一个方法,一个请求url, http的版本,由空格分割 响应行:包含HTTP版本, 数字状态码, 描述状态的原因短语...

gruelac的博客 335

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HTTP权威指南 -HTTP报文

1. 报文是如何流动的 报文流 HTTP报文是在HTTP应用程序之间发送的数据块,以文本形式的元信息(meta-information)开头,描述了报文的内容和含义,之所以称之为报文流,是因为报文在端与端之间进行有向传输。 2. HTTP报文的三个组成部分 HTTP报文有三个组成部分:起始行、首部、主体。 3. 请求和响应报文之间的区别 请求报文、响应报文都由起始行、首部、主体组成。 · 起始行不同: 请求行由HTTP方法、URL、HTTP版本组成,响应行由HTTP版本、响应状..

weixin_40293364的博客 316

《HTTP权威指南》学习笔记——HTTP报文

HTTP报文 HTTP:互联网的信使 HTTP报文:信使用来搬东西的包裹 1.报文流 HTTP报文:HTTP应用程序之间发送的数据块 组成:元信息开头(文本形式,描述报文的内容和含义)+可选的数据部分。 2.报文的组成部分 三部分组成: 起始行(描述报文) 首部块(属性) 主体部分(主体) 报文的语法: 两类:请求报文和响应报文 请求报文格式: <method><...

didingyun4257的博客 126

HTTP/1.1报文详解

本文为《三万长文50+趣图带你领悟web编程的内功心法》第三个章节。 3、HTTP/1.1报文详解 在RFC2616中心详细的描述了HTTP/1.1[1]的报文,感兴趣的朋友也可以前往阅读。 HTTP是基于TCP的,HTTP作为应用层协议,会在TCP/IP协议栈往下传递的时候,不断封装数据帧,如下图: 上面HTTP正文即是以我们HTTP报文格式来组织的。下面我们看看具体的HTTP报文的格式。 3.1、HTTP报文组成部分 HTTP请求和响应都使用如下通用的格式: start-line:起始行,起始行可以

chinaherolts2008的博客 1104

图解HTTP权威指南(一) | HTTP报文

一、问题 1、报文流是如何流动的 2、HTTP报文的三个组成部分 3、请求和响应报文之间的区别 4、请求报文支持的各种方法 5、和响应报文一起返回的各种状态码 6、各种各样的HTTP首部都是用来做什么的 二、报文流 1、什么是HTTP报文 HTTP报文是在HTTP应用程序直接发送的数据块。这些数据块以一...

Lemon_乐 231

HTTP权威指南学习笔记——第三章:HTTP报文

学习目标: 报文是如何流动的; HTTP报文的三个组成部分; 请求和响应报文之间的区别; 请求报文支持的各种功能; 响应报文返回的各种状态码; 各种各样的HTTP首部都是用来干什么的。 报文是如何流动的: 请求报文从客户端流向服务器,中间会经过若干代理。 应答报文从服务器流向客户端,流动路径一般与请求报文完全相反。 HTTP报文的三个组成部分: HTTP报文分为三个部分组成:起始行、包含属性的首部块、可选的主体部分。 请求命令的报文格式: 请求行: 请求方法|空格|URL|空格|协议版本|回车换行

qq_38705421的博客 276

7个HTTP报文核心知识点:从请求到响应的完整解析指南

gh_mirrors/http27/http项目是《HTTP权威指南》的知识点提炼总结,本文将带你深入理解HTTP报文的构成与工作原理,掌握请求与响应的核心奥秘。 ## 一、什么是HTTP报文? HTTP报文是客户端与服务器之间传递数据的载体,以"流"的方式在网络中传输。所有报文都遵循"上游向下游"的流动规则,经过的每个节点(如代理服务器)既可能是上游也可能是下游。 ### 报文的三大组成部

gitblog_00960的博客 370

HTTP权威指南--第三章 HTTP报文

如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了。 报文是如何流动的。 HTTP报文的三个组成部分。 请求和响应报文之间的区别。 请求报文支持的各种功能。 和响应报文一起返回的各种响应码。 各种各样的HTTP首部都是用来做什么的。 3.1 报文流 报文在客户端、服务器和代理之间流动,术语“流入”、“流出”、“上游”和“下游”都是用来描述报文方向的。 3.1.1 报文流入源端服务器 3.1.2 报文向下游流动 不管是请求还是响应报文都会想下游流动。所有报文的发送者都在报文的接受者的上游。

qq_28849581的博客 276

HTTP-请求报文与应答报文

Content-Type表示数据传输类型 1.请求消息体与响应消息体

Edidaughter的博客 3942

HTTP报文

HTTP报文   之前写过一篇HTML报文,但是感觉写完之后还是不懂,最近终于有时间开始看《HTTP权威指南》,看完之后觉得还是比之前的理解更加深入了,提取HTTP报文出来做个记录。   HTTP报文分为请求报文(request message)与响应报文(res...

ajwqb06628的专栏 577

【HTTP】HTTP权威指南

HTTP概述 Web客户端和服务器 web客户端:最常见的web客户端就是web浏览器,如微软的Internet Explorer,网景的Navigator。 web服务器: 资源 资源:

诗与浪子的博客 381

HTTP权威指南(一)HTTP结构

一个HTTP事务由一条请求命令和一个响应结果组成。通信过程通过HTTP的格式化数据块进行。从客户端发往服务器的报文称为请求报文,从服务器发往客户端的报文被称为响应报文。

volit的博客 1228

HTTP权威指南 -HTTP概述

第一章 HTTP概述 MIME类型:文本标记,格式:主要对象类型/子类型 一般在报文首部的Content-Type中说明资源的MIME类型 HTML格式的文本文档由text/html类型标记 ASCII文本文档---text/plain JPEG ---image/jpeg GIF ---image/gif PowerPoint --- application/vnd.ms-powerpoint and so on. 1.3 URI、URL、URN URI 统一资源标识...

weixin_40293364的博客 438
上一篇: HTTP协议学习笔记---HTTP持久连接和如何正确地关闭HTTP连接
下一篇: oracle 10g中的几个概念(表空间,数据库名,实例名)
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值