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

简介:

HTTP报文

HTTP:互联网的信使

HTTP报文:信使用来搬东西的包裹

1.报文流

HTTP报文:HTTP应用程序之间发送的数据块

组成:元信息开头(文本形式,描述报文的内容和含义)+可选的数据部分。

2.报文的组成部分

三部分组成:

  • 起始行(描述报文)
  • 首部块(属性)
  • 主体部分(主体)

报文的语法:

两类:请求报文和响应报文

8942f980jw1f0vdln64myj20pu06st9q.jpg

请求报文格式:

<method><request-URL><version>
<headers>
<entity-body>

响应报文格式:

<version><status><reason-phrase>
<headers>
<entity-body>
  • 方法 对资源执行的动作 如GET、POST等
  • 请求URL
  • 版本 HTTP版本,如HTTP/1.1
  • 状态码 status-code 描述请求过程中发生的情况
  • 原因短语
  • 首部
  • 实体的主体部分

起始行

请求行:说明要做些什么

响应行:说明发生了什么

方法:告诉服务器做什么事情
8942f980jw1f0vdroj8l2j20pm094q4a.jpg

状态码:告诉客户端发生了什么
8942f980jw1f0ve2xkn2tj20q207kjs2.jpg

常见状态码:
200 OK 成功
404 Not Found 未找到

原因短语:文本形式的解释,如HTTP/1.0 200 OK,OK就是原因短语

版本号:HTTP/x.y 告知对方自己所遵循的协议版本

首部

起始行后面跟着0,1或多个HTTP首部字段

HTTP首部字段向请求和响应报文中添加一些附加信息

本质是键值对的列表

方法

安全方法

HTTP请求不会在服务器上产生结果,GET方法和HEAD方法就是安全方法

GET

用于请求服务器发送某个资源

HEAD

与GET方法类似,服务器在响应中只返回首部

PUT

向服务器写入文档(GET是从服务器读取文档)

POST

向服务器输入数据,用它来支持HTML表单

POST用于向服务器发送数据,PUT用于向服务器上的资源中存储数据

TRACE

允许客户端在最终将请求发送给服务器时,看看它变成什么样子

3.状态码

HTTP状态码被分成了五大类

3.1 100——199 信息性状态码

HTTP/1.1向协议中引入信息性状态码,这些状态码相对较新,由于复杂性和感知价值存在一些争议,而受到限制。

3.2 200——299 成功状态码

8942f980jw1f0xzluv721j2164136akq.jpg

3.3 300——399 重定向状态码

重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么就提供一个替代的响应而不是资源的内容。

304 Not Modified 若客户端发起GET请求,而最近资源未被修改的话
就应该用这个状态码来说明资源未被修改。带有这个状态码的响应不应该包含实体的主体部分。

3.4 400——499 客户端错误状态码

客户端发送一些服务端无法处理的东西,如格式错误的请求报文,不存在的URL

8942f980jw1f0y0qbzpgbj216w11ewp9.jpg
8942f980jw1f0y0rpgu86j21340y67co.jpg

3.5 500——599 服务器错误状态码

客户端发送有效请求,服务器却出错。
8942f980jw1f0y0yfcaisj212c07umz2.jpg
8942f980jw1f0y0z7zivsj211s0ewaei.jpg

首部

首部和方法配合工作,共同决定客户端和服务器能做什么事情。

在请求报文和响应报文中都可以用首部来提供信息。

首部可以分为5个类型:

  • 通用首部 客户端和服务器都可以使用的通用首部,提供一些通用功能
    如 Date:Sat, 13 Feb 2016 12:09:32 GMT
  • 请求首部 请求报文特有的,为服务器提供一些额外的信息
    如 Accept:image/webp,image/*,*/*;q=0.8
  • 响应首部
  • 实体首部 用于应对实体主体部分的首部
    Content-Type:text/plain; charset=utf-8
  • 拓展首部 非标准的首部,由应用程序开发者创建。
原文地址:http://www.cnblogs.com/JohnTsai/p/5188356.html
相关文章
|
3月前
|
Web App开发 存储 缓存
三、《图解HTTP》- 报文内的 HTTP信息
三、《图解HTTP》- 报文内的 HTTP信息
43 0
|
7月前
|
Web App开发 应用服务中间件 nginx
【面试】HTTP 协议报文详细说明
【面试】HTTP 协议报文详细说明
30 1
|
3月前
|
Java
【JavaEE初阶】 HTTP响应报文
【JavaEE初阶】 HTTP响应报文
|
4月前
|
前端开发 JavaScript API
HTTP报文:知识点
HTTP报文:知识点
28 0
|
4月前
|
Web App开发 网络协议 Linux
Linux C/C++ 开发(学习笔记十 ):实现http请求器(TCP客户端)
Linux C/C++ 开发(学习笔记十 ):实现http请求器(TCP客户端)
59 0
|
5月前
|
Web App开发 存储 缓存
三、《图解HTTP》- 报文内的 HTTP信息
三、《图解HTTP》- 报文内的 HTTP信息
48 0
三、《图解HTTP》- 报文内的 HTTP信息
|
5月前
|
安全 网络协议 JavaScript
http 详解 二 http简易使用,报文内的信息和返回状态码解释
http 详解 二 http简易使用,报文内的信息和返回状态码解释
55 0
|
6月前
|
网络协议 安全 Linux
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
这篇文章将带您深入了解HTTP请求的特征和报文格式。HTTP作为一种简单、灵活且易于扩展的协议,适用于各种操作系统和设备。我们还将探讨持久性连接如何提高请求的效率。了解HTTP报文的构成,包括起始行、头部字段和消息正文,将帮助您更好地理解HTTP的工作原理。无论您是初学者还是已经有一定了解的读者,本文都将为您提供全面的HTTP知识。
152 1
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
|
6月前
|
缓存 网络协议 算法
网络基本功:http报文及TCP拥塞控制机制
网络基本功:http报文及TCP拥塞控制机制
|
8月前
|
缓存 网络协议 算法
《HTTP权威指南》读书笔记
《HTTP权威指南》读书笔记