HTTP报文

HTTP:互联网的信使

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

1.报文流

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

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

2.报文的组成部分

三部分组成:

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

报文的语法:

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

请求报文格式:

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

响应报文格式:

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

起始行

请求行:说明要做些什么

响应行:说明发生了什么

方法:告诉服务器做什么事情

状态码:告诉客户端发生了什么

常见状态码:
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 成功状态码

3.3 300——399 重定向状态码

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

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

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

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


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

客户端发送有效请求,服务器却出错。

首部

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

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

首部可以分为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权威指南》学习笔记——HTTP报文相关推荐

  1. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! JavaScript 权威指南-学习笔记 ...

  2. Hadoop权威指南学习笔记三

    HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...

  3. Hadoop权威指南学习笔记一

    Hadoop简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出.一起学习一起进步. 转载请注明:http://blog.csdn.net/ ...

  4. ZeroC Ice权威指南-学习笔记1——hello world

    前言 ZeroC Ice是一款很好的RPC框架,性能极好.但是参考文档不足是其一大问题,这也影响了它的传播.<ZeroC Ice权威指南>是唯一的中文教材,但写的不尽如人意,作为入门教材, ...

  5. Javascript权威指南学习笔记一:数据类型

    决定从最基础的开始学JavaScript,最近看了<<Javascript权威指南>>第3章,记些笔记备忘. 本章一个重点是类型.按我的理解应该如下表所示: 复合类型中,关联数 ...

  6. netty权威指南 学习笔记http

    序 李林峰的<netty权威指南>,从Java的NIO开始介绍,后面介绍TCP粘包拆包.中级篇介绍编解码技术. 第10章介绍了HTTP及netty HTTP+XML的技术. 因为xml实际 ...

  7. maven 一个简单项目 —— maven权威指南学习笔记(三)

    目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...

  8. javascript权威指南 学习笔记之变量作用域

    最近一直在看<javascript权威指南 第五版>,变量作用域这一章,看得真的有点累.不过,收获还是多多. 不知道,大家对语言中变量的"声明"与"定义&qu ...

  9. netty权威指南学习笔记五——分隔符和定长解码器的应用

    TCP以流的方式进行数据传输,上层应用协议为了对消息进行区分,通常采用以下4中方式: 消息长度固定,累计读取到长度综合为定长LEN的报文后,就认为读取到了一个完整的消息,将计数器置位,重新开始读取下一 ...

  10. netty权威指南学习笔记三——TCP粘包/拆包之粘包现象

    TCP是个流协议,流没有一定界限.TCP底层不了解业务,他会根据TCP缓冲区的实际情况进行包划分,在业务上,一个业务完整的包,可能会被TCP底层拆分为多个包进行发送,也可能多个小包组合成一个大的数据包 ...

最新文章

  1. 小程序中,iOS设备获取蓝牙设备的Mac地址
  2. BeanFactory笔记
  3. [css] 写出主流浏览器内核私有属性的css前缀
  4. 【nebula graph】RPM离线搭建nebula graph集群
  5. 安装程序检测到无法验证文件的发行者_文件的校验方法
  6. 实现Excel实现下拉框选择对应的数据(数据验证)
  7. ipad如何与计算机连接网络连接不上,苹果平板电脑网络连接不可用怎么办
  8. 计算机双工模式,小熊教你电脑设置连接速度和双工模式
  9. springBoot使用RestTemplate报错:No instance available for xxx.xxx.xxx.xxx
  10. 违反卖家评论政策被警告了应该怎么操作?
  11. 警惕男人出轨的六个高发期
  12. 学计算机学费一万多吗,计算机专业的学费是多少
  13. Web前端——HTML中的列表、表格、表单
  14. 虚拟机服务器警报设置,设置VMware vCenter警报器获得更好的管理
  15. 向左还是向右?聊聊中台建设中的那些纠结事
  16. Linux Logrotate日志切割管理
  17. 怎么批量下载Onedrive分享文件_【软件分享】简单易用的照片批量处理软件,有需求的下载用用!...
  18. 解决java.lang.NoSuchMethodError: javax.servlet.http.Part.getSubmittedFileName()Ljava/lang/String;
  19. 吾爱破解工具箱 v 1.0
  20. 极坐标t1t2几何意义_高中数学知识点复习资料归纳整理:参数方程、极坐标

热门文章

  1. 软件工程转计算机科学与技术,计算机与软件工程学院本科生转专业实施方案
  2. ps cs6磨皮插件_【PS插件】ps磨皮插件Portraiture
  3. excel 下拉框选择月份显示不同的日历_秒杀Excel的数据分析工具,几分钟教你完成数据填报...
  4. php签名墙代码,我们是一家人(签名墙)
  5. Transaction rolled back because it has been marked as rollback-only
  6. Android AOSP基础(五)不会调试系统源码,还搞什么Android?
  7. Coursera-AndrewNg(吴恩达)机器学习笔记——第四周编程作业(多分类与神经网络)...
  8. 某人一定不会的——重口味线段树
  9. 从头開始写项目Makefile(三):变量的使用
  10. JSP页面中onSubmit方法不执行