HTTP 基础概念


Http协议

  1. 什么是HTTP协议?
    HTTP协议是一种超文本传输协议,是一种请求,响应式协议。
  2. HTTP协议的特点
    1. 支持浏览器(客户端)/服务器模式
    2. 简单快速,浏览器向服务器发起请求时,只需要传送请求方式和路径
    3. 灵活,可以发送任意类型的数据
    4. 无状态,Http是无状态协议,无状态是指对事物处理没有记忆能力

HTTP消息

  1. HTTP消息有几种?

    两种,一个请求消息,一个响应消息。

  2. 请求和响应的定义

    1. 当浏览器向服务器发送请求数据的时候,即http请求消息
    2. 当服务器向浏览器发送响应数据的时候,即http响应消息

HTTP请求消息

  1. http请求包含几个部分?

    三个部分,请求方式,资源路径,http版本

  2. http常用的请求方式

    请求方式 含义
    GET 请求获取请求行URL所标识的资源
    POST 向指定资源提交数据,请求服务器进行处理
    HEAD 请求获取由URL所标识资源的响应消息头
    PUT 将网页放到指定的URL位置上(上传/移动)
    DELETE 请求服务器删除URL所标识的资源
    TRACE 请求服务器回送收到的请求消息,主要用于测试和诊断
    CONNECT 保留将来使用
    OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求

    注意:浏览器表单默认的是GET请求

    请求方式 区别
    GET 请求方式的参数信息都会在URL地址栏显示,而且通过请求参数传递数据,所以最多不超过1KB大小
    POST 请求内容隐藏在实体内容中,通过实体内容进行数据传递,所以没有数据大小限制
    请求头字段 含义
    Accept:text/html 客户端希望接收HTML文本
    Accept:image/gif 客户端希望接收GIF格式的图像资源
    Accept:image/* 客户端可以接收所有image格式的子类型
    Accept:*/* 客户端可以接收任意类型的数据
    Accept-Charset 告知服务端,客户端所用的字符集
    Accept-Encoding 用于指定客户端能够进行解码的数据编码方式
    Accept-Language 客户端期望服务端返回那个国家的语言文档
    Host 指定资源所在的主机和端口号
    Max-Forward 指当前请求可以经过的代理服务器数量,每经过一个,数量减一
    Referer 单击超链接向服务器发送GET请求时,浏览器会在发送的请求中加上该字段(防止盗链)
    User-Agent 指定浏览器或者其他客户端程序所使用的操作系统及版本,浏览器及版本,浏览器渲染引擎,浏览器语言

HTTP响应消息

  1. HTTP响应消息包含几个部分

    三个部分,响应状态行、响应消息头实体内容

  2. 响应状态行

    1. HTTP版本
      1.0、1.1

    2. 状态码及描述信息

      状态码 描述信息
      1xx 请求已经接受,需要继续处理
      2xx 请求已经被服务器成功理解并接受
      3xx 为完成请求,客户端需进一步细化请求
      4xx 客户端的请求有错误
      5xx 服务端出现错误
    3. 常用的状态码

      状态码 状态信息 描述信息
      200 正常 客户端请求成功,响应消息返回正常的请求结果
      400 请求无效 客户端不正确的语法格式
      403 禁止 服务端理解客户端的请求,但是拒绝处理
      404 找不到 表示服务器不存在客户端存在的资源
      500 内部服务器错误 大部分情况下是服务器端的CGI,jsp, ASP出现错误
  3. 响应消息头

    1. 说明

      服务器端向客户端传递附加信息,包括服务程序名,被请求资源需要的认证方式,重定向地址,客户端请求资源的最后修改时间。

    2. 常见的响应消息头

      响应消息头 描述内容
      Accept-Range 说明服务器是否接收客户端使用Range请求头字段请求资源
      Age 指出当前网页文档可以在客户端或代理服务器中缓存的有效时间
      Etag 用于向客户端传送代表实体内容特征的标记信息,这些标记信息也称为实体标签,每个版本资源的实体标签是不同的,通过这个标签可以判断不同时间下,同一资源路径下的实体内容是否相同
      Location 用于通知客户端获取请求文档的新地址
      Retry-After 该字段可以与503状态码配合使用,告诉客户端什么时候可以重新发送请求,也可以与任何一个3xx状态码配合使用,告诉客户端处理重定向的最小延时时间
      Server 用于指定服务器软件产品的名称
      Vary 用于指定影响了服务器所生成的响应内容的那些请求头字段名
      Refresh 用于告诉浏览器自动刷新页面的时间,是以秒为基本单位
      Content-Disposition 用于服务器希望浏览器直接处理响应的实体内容,而是让用户选择将实体内容保存到一个文件中
  4. 实体内容
    服务器根据客户端的请求所做出的处理结果

HTTP(请求或响应)消息中的其他字段

  1. 通用字段

    字段名 字段描述
    Cache-Control 用于通知位于客户端与服务器之间的代理服务器如何使用已缓存的页面
    Connection 用于指定处理完本次请求/响应后,客户端与服务器是否还要保持连接
    Date 用于表示HTTP消息产生的当前时间
    Pragma 通知代理服务器和客户端如何使用缓存页面-
    Transfer-Encoding 通过该字段通知客户端响应数据的长度,因为HTTP1.1协议是持久化协议
    Via 用于指定HTTP消息所途径的代理服务器所使用的协议与主机名
    Warning 用于说明其他头字段和状态码不能说明的一些警告信息
  2. 实体头字段

    字段名 字段描述
    Allow 指定请求资源所支持的请求方式
    Content-Language 用于指定返回网页文档的国家语言类型
    Content-Length 用于表示实体内容的长度
    Content-Location 用于指定响应消息中实体内容的实际位置路径(当一个请求资源有多个国家语言版本的时候,每个国家语言版本都有自己的位置,这时,请求资源路径和响应的实体内容的实际位置路径可能是不同的)
    Content-Type
    Content-Encoding 用于指定实体内容的压缩编码格式,服务器端对实体内容的压缩不影响实体内容的MIME类型,被压缩的实体内容在客户端被解压的时候,MIME类型与Content-Type头字段指定的类型一致

文章作者: Huowy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Huowy !
评论
  目录