HTTP权威指南-HTTP报文

在开始学习本章之前,先来提一些问题,什么是报文?如何创建报文?怎么去理解报文?以及报文的用处有哪些?

什么是报文?

可以这么去理解,如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了。

一、报文流

HTTP报文是在HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这新信息描述了报文的内容及含义,后面跟着可选的数据部分。

1.报文流入源端服务器

HTTP使用术语流入和流出来描述事物处理。

第一步流入源端服务器,工作完成后,会流回用户的Agent代理中

2.报文向下流游动

不管是请求报文还是响应报文,所有报文都会向下游流动。

二、报文的组成部分

HTTP报文是简单的格式化数据块。

它们是由三部分组成:对报文进行描述的起始行、包含属性的首部块,以及可选的、包含数据的主体部分。

1.报文的语法

所有的HTTP报文都可以分为两类:请求报文和响应报文。请求报文会向 Web服务器请求的一个动作。响应报文会将请求的结果返回给客户端。

方法、请求URL、版本、状态码、原因短语、首部、实体的主体部分

2.起始行

请求报文的起始行说明了要做些什么,响应报文的起始行说明了发生了什么。

请求行:(请求报文)请求报文的起始行(方法、URL)、HTTP的版本。

响应行:(响应报文)HTTP的版本、数字状态码、原因短语。

方法:get、head、post、put、trace、options、delete。

状态码

原因短语:它为状态码提供了文本形式的解释。

版本号:版本号会以HTTP/x.y形式出现在请求报文和响应报文的起始行中。使用版本号的目的是为使用HTTP的应用程序提供一种线索,以便互相了解对方的能力和报文格式。比较版本时,每个数字都要单独比较。HTTP/2.22就比HTTP/2.3的版本要高。22>3

3.首部:向请求和响应报文中添加一些附加信息。

4.实体的主体部分:

可选的,是HTTP报文的负荷,就是HTTP要传输的内容。

5.版本的0.9的报文:

是HTTP协议的早起版本。是鼻祖,协议简单。

三、方法

1.安全方法

2.GET:通常用于请求服务器发送某个资源

3.HEAD:服务器响应中只返回首部,不会返回实体的主体部分。在不获取资源的情况下了解资源的情况;查看响应中的状态码,看看某个对象是否存在;查看首部,测试资源是否被修改了。l

4.PUT:想服务器写入文档。由于PUT允许用户对内容进行修改,所以很多WEB服务器都要求在执行PUT之前,用密码登陆。

5.POST:通常用于表单。

6.TRACE:客户端发起一个请求,这个请求可能要穿过防火墙、代理、网关或者其他一些应用程序。每个中间节点可能会修改原始的HTTP请求。原始报文是否,以及如何被毁坏和修改过。

这个方法主要用于诊断。用于验证是否入院穿过了请求/响应链。..........

7.OPTIONS:options请求WEB服务器告知其支持的各种功能。使其不用实际访问那些资源就能判定访问各种资源的最优方式。

8.DELETE:请服务器删除请求URL所指定的资源。

9.扩展方法:指的就是没有在HTTP/1.1规范中定义的方法。

四、状态码

100-199  信息性状态码  200-299  成功状态码  300-399   重定向状态码   400-499  客户端错误状态码   500-599  服务器错误状态码

五、首部

1.通用首部:提供了与报文相关的最基本的信息。通用缓存首部,这样就不需要总是直接从源端服务器获取了。

2.请求首部:(请求报文)用于说明是谁或什么在发送请求、请求源自何处,或者客户端的喜好 和能力。

3.响应首部:(响应报文)为客户提供一些额外信息。比如谁在发送响应、响应者的功能、甚至与响应相关的一些特殊指令。

4.实体首部:HTTP报文的负荷。可以告知报文的接收者它在对什么进行处理。

时间: 2024-11-03 22:47:22

HTTP权威指南-HTTP报文的相关文章

《HTTP权威指南》学习笔记

一 概念 a 浏览器解析出URL. b 域名解析得出域名. c 有端口的解析端口. d 进行TCP连接. e 发送请求报文. d 接收响应报文. e 断开TCP连接. 1 HTTP[概念-应用层] 2 Web客户端与服务器[结构组件] 3 资源[资源类型] 4 事务[概念理解] 5 报文[结构] 6 连接[TCP-网络层] 7 版本[HTTP 2.0新变化,减少性能优化] 8 组件[各类组件功能] 9 应用[前端后台应用] 1 主线 2 概念 3 重点概念:URL,HTTP报文,连接 二 组成

《HTTP权威指南》学习总结1——HTTP协议概述

备注:本文最初是针对我在github pages上搭建的博客写的,很多样式都是自己定制的,所以看起来效果可能不是很好,想获得更佳的阅读体验可以移步我的博客. 引言 本来是计划要翻译HTTP相关rfc文档的,奈何工程量巨大,进度实在太慢,只能放弃,以后有兴趣可以搞一下,因为里面确实有一些很有用的东西,当前学习任务还是讲究效率的.终于在一些因素的影响下,我决定在1个月内看完<HTTP权威指南>这本书.从3月13日开始到4月15日,进度还是拖下了,因为游戏太好玩了. 不说废话,进入正题. 如今我们已

读HTTP权威指南的体会

国庆期间,我读了HTTP权威指南一书,现在我把总节为大家讲一下: Web 浏览器.服务器和相关的Web 应用程序都是通过HTTP 相互通信的.HTTP 是 现代全球因特网中使用的公共语言. 是对HTTP 的简要介绍.在本章中可以看到Web 应用程序是如何使用HTTP 进 行通信的,这样就可以对HTTP 如何完成其工作有个大概印象.我们将特别介绍以 下方面的内容: • Web 客户端与服务器是如何通信的: • (表示Web  内容的)资源来自何方:  • Web 事务是怎样工作的: • HTTP

《http权威指南》读书笔记 一

记录在阅读<http权威指南>时一些知识点,以备后用. URL部分 rstp://www.123.com/1.mp4  rstp下载协议 url中的ftp方案:ftp://username:[email protected]/file_name url中的参数:参数名=值  eg:www.123.com/index.html;type=value url中的查询:http://www.123.com/...?item=123 url中的片段:http://www.123.com/index.h

《HTTP权威指南》笔记之 网络状态码

状态码分为五大类, (1)100 ~ 199 信息性状态码 状态码 含义 原因短语 100 说明服务器收到了请求的初始部分,请客户端继续发送 Continue 101 说明服务器正在根据客户端的指定,将协议转换成为 Update首部所列的协议 Switching Protocol (2)200 ~ 299 成功状态码 状态码 原因短语 含义 200 OK 请求没问题 201 Ctreated 用于创建服务器对象的请求(如PUT) 202 Accepted 请求已被接受,但服务器还未对其执行任何动

《HTTP权威指南》高清中文版pdf

下载地址:网盘下载 图书简介 编辑 <HTTP权威指南>由古尔利所著,<HTTP权威指南>详细解释了如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等.<HTTP权威指南>的中心内容是HTTP,本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中,主要涵盖HTTP的技术运作方式.产生动机.性能和目标以及一些相关技术问题. <HTTP权威指南>适合所有想了解HTTP和Web底层结

JavaScript权威指南第13章 web浏览器中的javascript

13.1 客户端javascript window对象是所有的客户端javascript特性和api的主要接入点.表示浏览器的一个窗口,可以通过window对象来引用它. window 的方法 alert() prompt() confirm() 13.2 在html里嵌入javascript 4种方法: 内联:放置在<script></script>标签之中 外部引入:<script src="   "></script> html程序

【vue.js权威指南】读书笔记(第一章)

最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.js不是一个框架-它只聚焦视图层,是一个用来构建数据驱动的Web界面的库.Vue.js通过简单的API来提供高校的数据绑定和灵活的组件系统 vue.js的特性 轻量级:体积非常小,而且不依赖其他基础库 数据绑定:对于一些富交互,状态机类似的前端UI界面,数据绑定非常简单,方便 指令:类似与AJ,可以使用v-*的

maven权威指南学习笔记(五)&mdash;&mdash; POM

Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里的信息. 这个POM文件在maven1中是project.xml,在maven2时改为pom.xml. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.