zoukankan      html  css  js  c++  java
  • 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报文的负荷。可以告知报文的接收者它在对什么进行处理。

  • 相关阅读:
    iFrmae_HTML
    表单_HTML
    使用 docker-compose 运行 MySQL
    【消息中间件是啥哟?】
    vue项目打包经验
    【css之flex布局】a guide to flexbox
    vue表格数据查询
    模块化导出导入的几种方式
    快速搭建一个本地服务node
    小程序性能优化
  • 原文地址:https://www.cnblogs.com/Saumterer/p/6912911.html
Copyright © 2011-2022 走看看