• http 报文详解


    当前服务端和客户端的交互,都是通过http 协议交互的,那么一个http 具体包含哪些内容呢,今天我们就来了解一下。

    HTTP有两种报文:请求报文和响应报文,具体介绍如下

    • HTTP请求报文

    HTTP请求报文主要包括请求行、请求头部以及请求的数据(实体)三部分

    请求行(HTTP请求报文的第一行)

      请求行由方法字段、URL字段和HTTP协议版本字段。其中,方法字段严格区分大小写,当前HTTP协议中的方法都是大写,方法字段如下介绍如下:

    方法字段

        GET:请求获取Request-URI(URI:通用资源标识符,URL是其子集,URI注重的是标识,而URL强调的是位置,可以将URL看成原始的URI),所标识的资源

        POST:在Request-URI所标识的资源后附加新的数据;支持HTML表单提交,表单中有用户添入的数据,这些数据会发送到服务器端,由服务器存储至某位置(例如发送处理程序)

        HEAD:请求Request-URI所标识的资源响应消息报头,HEAD方法可以在响应时不返回消息体。

        PUT:与GET相反,请求服务器存储一个资源,并用Request-URI做为其标识;例如发布系统。

        DELETE:请求删除URL指向的资源

        OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项

        TRACE:跟踪请求要经过的防火墙、代理或网关等,主要用于测试或诊断

        CONNECT保留将来使用

    URL

      一个完整的包括类型、主机名和可选路径名的统一资源引用名,如:http://www.test.com/action/methon/index.html

    请求头部:位于请求行的下面

      请求报文中常见的标头有

      Connetion标头(连接管理)、

      Host标头(指定请求资源的主机)、

      Range标头(请求实体的字节范围)、

      User-Agent标头(包含发出请求的用户信息)、

      Accept标头(首选的媒体类型)、

      Accept-Language(首选的自然语言)

    HTTP首部

       通用首部:请求和响应都可以使用的 

          Connection:定义C/S之间关于请求/响应的有关选项

          对于http/1.0, Connection: keep-alive

          Via: 显示了报文经过的中间节点

          Cache-Control: 缓存指示

        实体首部:用于指定实体属性

          实体主体用于POST方法中。用户向Web服务器提交表单数据的时候,需要使用POST方法,此时主体中包含用户添写在表单的各个属性字段的值,当Web服务器收到POST方法的HTTP请求报文后,可以从实体中取出需要的属性字段的值。

          也就是说,当用户通过Web浏览器向Web服务器发送请求时,Web浏览器会根据用户的具体请求来选择不同的HTTP请求方法,再将相应的URL和HTTP协议版本及相关的标头填入头部行中,若是POST方法,还会将相关的表单数据填入实体主体中,产生一个  

          HTTP请求报文,然后将这个报文发送给Web服务器。

        请求首部:

          Host: 请求的主机名和端口号,虚拟主机环境下用于不同的虚拟主机

          Referer:指明了请求当前资源的原始资源的URL

          User-Agent: 用户代理,使用什么工具发出的请求

        

          1)Accept首部:用户标明客户自己更倾向于支持的能力

          Accept: 指明服务器能发送的媒体类型

          Accept-Charset: 支持使用的字符集

          Accept-Encoding: 支持使用的编码方式

          Accept-Language: 支持使用语言

          2)条件请求首部

          Expect: 告诉服务器能够发送来哪些媒体类型

          If-Modified-Since: 是否在指定时间以来修改过此资源

          If-None-Match:如果提供的实体标记与当前文档的实体标记不符,就获取此文档

          跟安全相关的请求首部:

          Authorization: 客户端提交给服务端的认证数据,如帐号和密码

          Cookie: 客户端发送给服务器端身份标识

  • 相关阅读:
    129 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 02 懒汉式的代码实现
    128 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 01 饿汉式的代码实现
    127 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 02 单例模式概述 01 单例模式的定义和作用
    126 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 01 设计模式概述 01 设计模式简介
    125 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)05 Java继承(下)总结 01 Java继承(下)知识点总结
    leetcode-----121. 买卖股票的最佳时机
    leetcode-----104. 二叉树的最大深度
    Json串的字段如果和类中字段不一致,如何映射、转换?
    Mybatis-Plus的Service方法使用 之 泛型方法default <V> List<V> listObjs(Function<? super Object, V> mapper)
    模糊查询
  • 原文地址:https://www.cnblogs.com/fangdada/p/14889153.html
Copyright © 2020-2023  润新知