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
Unity之ASE如何实现UV扰动闪电效果 UV扰动,顾名思义,就是通过干扰原贴图的UV,使UV发生变化,导致贴图出现会动的效果,如果我们贴图和扰动的速度调整的刚好合适的话,会出现一些非常棒的效果,比如下图所示的闪电效果:好了,一个简单的UV扰动就讲完了,同学们可以发挥想象力,我们是否可以利用UV扰动的原理,做一点别的炫酷的效果出来,比如,交错流动,流光效果等等。很期待你的留言,这篇文章就到这里,希望对你有所帮助。 阅读详情

相关推荐

Linux USB设备命名规则

有一个USB设备,接到了Linux系统的终端的某个插口上,那么怎么找到这个设备对应设备路径呢?这个USB设备虚拟了多个功能(三个串口和一个网卡), 如何找到对应操作路径呢?

weixin_43132521的博客 1698

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

ETAP实战:如何用仿真软件快速绘制标准一次接线图(附模板下载)

本文提供了一套基于ETAP软件高效绘制标准一次接线图的完整实战工作流。从国标符号库配置、绘图模板创建,到核心设备绘制、参数标注,再到利用软件模型进行拓扑检查与短路电流校核,手把手教你实现从零到一的专业图纸设计。文末附有实用模板下载,助你大幅提升电力设计效率与图纸质量。

weixin_29291573的博客 510

《HTTP权威指南》学习笔记

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

雲斷丶 4868

MR2数据集实战:5步搞定多模态谣言检测模型训练(附完整代码)

本文详细介绍了如何使用MR2多模态数据集构建高精度谣言检测系统,涵盖环境配置、数据准备、多模态特征工程、模型架构设计、训练调优及部署优化等5个关键步骤。通过双线性融合技术处理文本、图像和网页三模态数据,解决特征对齐和模态冲突等工程难题,并提供完整代码实现和性能优化方案。

weixin_42657024的博客 239

论文阅读:SuperGaussians: Enhancing Gaussian Splatting Using Primitives with Spatially Varying Colors

Gaussian Splattings 在基于高斯显式表示的多视图重建中展示出了令人印象深刻的结果。然而,当前的高斯基元只有单视图依赖的颜色和不透明度来表示场景的外观和几何形状,导致了一种非紧凑的表示。在本文中,我们引入了一种名为“超高斯(SuperGaussians)”的新方法,它在单个高斯基元中利用空间变化的颜色和不透明度来提高其表示能力。我们实现了双线性插值、移动核,甚至是小型神经网络作为空间变化函数。

m0_48319749的博客 1508

HTTP权威指南读后感

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

MarxWolf的博客 1123

Cesium+Three.js融合实战:从零构建GIS与BIM一体化场景

本文详细介绍了如何将Cesium与Three.js进行技术融合,从零构建GIS与BIM一体化场景。通过环境配置、核心场景搭建、坐标转换、性能优化及交互处理等实战步骤,阐述了Cesium负责宏观地理空间渲染、Three.js处理微观精细BIM模型的协同方案,为智慧城市、数字孪生等应用提供关键技术实现路径。

weixin_29230865的博客 460

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

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

ArtAndLife的博客 290

深入解析“PROJ: proj_create_from_database: Cannot find proj.db”错误:从环境配置到打包实战

本文深入解析了“PROJ: proj_create_from_database: Cannot find proj.db”错误的根源与解决方案,涵盖环境配置、PyInstaller打包及跨平台兼容性处理。通过详细分析PROJ库路径问题及GDAL依赖关系,提供动态路径设置、资源文件打包等实战技巧,帮助开发者高效解决地理数据处理中的常见错误。

weixin_29074409的博客 444

Windows 下 Claude Code 使用全记录:从零到一的保姆级图文教程(持续更新)

本文主要介绍了Windows 下 Claude Code 使用全记录:从零到一的保姆级图文教程,希望能对学习使用 Claude Code 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程(2026年最新教程) 2.1 步骤一 Claude Code 环境准备 2.2 步骤二 配置Claude Code 2.3 步骤三 对话 3. 老版本实战教程 3.1 步骤一 配置Node.js 3.2 步骤二 Claude Code配置 3.3 步骤三 配置Claude Code 3.4 步骤四 对话

weixin_43178406的博客 15万+

HTTP权威指南-HTTP报文

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

Kenny_2015的博客 192

加权均值向量算法(INFO)详解:从数学原理到智能算法

本文系统介绍了加权均值向量算法(INFO)的理论基础、数学模型与实现应用。该算法基于加权均值数学概念,通过MeanRule规则平衡探索与开发能力,具有结构新颖、参数合理的特点。核心内容包括:1) 算法理论基础,阐述加权均值数学定义与小波函数权重计算;2) 算法原理,详细解析更新规则、向量组合和局部搜索三阶段数学模型;3) 实现方法,提供MATLAB代码关键参数解析;4) 改进方向,介绍INFO-KELM混合模型等变体;5) 应用案例,涵盖函数优化、工程设计与机器学习领域。

qq_42212808的博客 234

2.http权威指南:HTTP报文

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

linux_player_c(系统&开发) 602

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

HTTP权威指南之HTTP报文

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

gruelac的博客 335

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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、付费专栏及课程。

余额充值