HTTP 消息

一、HTTP 消息?

  • 1. HTTP 报文

    HTTP 报文 , 又称为 HTTP 消息,是指服务器和客户端之间交换数据的方式。分为:请求(客户端向服务器端发送的内容)、响应(服务器的响应);

  • 2. 请求 Requests
    • Method: 请求方法

      • GET:用来请求URL指定的资源,指定资源经服务器端解析后返回响应内容。(常用)
      • Post:用来传输实体的主体。 (常用)
      • PUT:用来传输文件。
      • Head:同 GET,但不返回报文主体部分,多用于确认信息。
      • Delete: DELETE 按请求URL删除指定的资源。
      • Options:请求URL指定的资源支持的方法。
      • Connect:建立目标URL服务器的隧道。
      • ……

      如图:在这里插入图片描述

    • Path:请求路径

    • Version of the protocol:HTTP 版本号

    • Headers:头部信息

  • 3. 响应 Responses
    • Version of the protocol:HTTP 版本号
    • Status code:状态码
    • Status message:状态信息
    • Headers:头部信息

    如图:在这里插入图片描述

PS:
     1. 最常用的请求方法:GET、Post
     2. 常见的请求方法:至少有七种(GET、Post、Head、PUT、Delete、COnnect、Options)
     3. 请求方法:不止七种(GET、Post、Head、PUT、Delete、COnnect、Options、Trace、Patch)

二、HTTP 消息基本结构。

  • Start line:起始行
  • HTTP headers:HTTP 头
  • empty line:空白行
  • body:正文

PS:
    1. 起始行和HTTP头统称为:请求头;
    2. 有效负载称为:消息正文;

  • HTTP 请求与相应信息
    >

三、HTTP 起始行。

  • 1.结构
    • 请求方法
    • 请求地址
    • HTTP 版本
  • 2.同步请求
function RequestByGet(nProducttemp,nCountrytemp)
{
    var xmlhttp

    if (window.XMLHttpRequest)
    {
         xmlhttp   =   new   XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
         xmlhttp   =   new   ActiveXObject("Microsoft.XMLHTTP");
    }
               
    var URL="http://www.baidu.com/;
    // ——> false
    xmlhttp.open("GET",URL, false);
    xmlhttp.send(null);
    var result = xmlhttp.status;
 
    if(result==200)
    {
        document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
    }
    xmlhttp = null;
}
  • 3.异步请求
var xmlhttp

function RequestByGet(nProducttemp,nCountrytemp)
{
    if (window.XMLHttpRequest)
    {
         xmlhttp   =   new   XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
         xmlhttp   =   new   ActiveXObject("Microsoft.XMLHTTP");
    }
               
    var URL="http://www.baidu.com/";
     // ——> true
    xmlhttp.open("GET",URL, true);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);
}

function handleResponse()
{
    if(xmlhttp.readyState == 4 && xmlhttp.status==200)
    {
        document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
        xmlhttp = null;
    }
}

四、HTTP 请求头 && 请求体。

  • 1. HTTP 请求头
    • 请求头 = 头名称 + :+具体值(不带换行符); (多个值之间用 ’ : ’ 分割)

    • 通用头

    • 请求头

    • 实体头

    PS:在这里插入图片描述

  • 2. HTTP 请求体

    请求消息的最后部分为请求主体;

    • *单一资源主体:单个文件组成;含两个header 定义(Content-Type && Content-Length)

    • *多资源主体:多个请求主体组成,各部分包含内容不同;

    PS:
        1.不是所有请求都需要请求主体(GET、Head…)
        2.部分请求将数据发送给服务器(POST)

五、HTTP 状态行 && 状态码。

  • 1.状态行

          起始行start-line)又名 状态行

    • 内容:

      • 1.协议版本:通常为 HTTP/1.1

      • 2.状态码:如200,404,302

      • 3.状态文本:如OK

      PSHTTP/1.1 200 OK

  • 2.状态码

    成功响应码 :

    状态码描述
    200 OK请求成功 (常见)
    201 Vreated请求成功,并创建一个新资源i
    202 Accepted请求收到,但未反应
    203 Non-Authoritative成功处理请求,但返回实体头部信息不是在原始服务器上有效确定集合,而是来自本地或第三方的拷贝
    204 No Content成功处理请求,但不需要返回任何实体,且希望返回更新的元信息
    205 Reset Content成功处理请求,且无任何返回内容
    206 Partial Content服务器成功处理部分GET请求

    重定向

    状态码描述
    300 Multiple Choice请求的资源有很多并且可供选择
    301 Moved Permanently请求资源已永久移动新位置
    302 Found服务器转接(定位到其他服务器)(常见)
    303 See Other请求资源在另外URL上,且要用GET方式访问
    304 Not Modified未被修改访问缓存 (常见)

    客户端响应(常见)

    状态码描述
    400 Bad Request请请求格式错误
    401 Unauthorized请求需要验证
    403 Forbidden拒绝响应
    404 Not Found请求的资源不存在
    405 Method Not Allowed必须使用指定方法进行请求

    服务端响应(常见)

    状态码描述
    500 Internal Server Error服务器内部错误
    501 Not Implemented请求方法不被支持
    502 Bad Gateway路径错误
    503 Service Unavailabe服务器未初始化(可能宕机)
    504 Gateway Timeout服务器作为网关,不能及时作出响应时报错
    505 HTTP Version Not Supported协议版本不支持

六、HTTP 响应头 && 响应体。

七、MIME 类型。

八、HTTP 缺点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值