http请求详解

2018-12-07  本文已影响0人  eveseven

1.http协议

    HTTP协议,它规定了在网络中发布,传输和接收html页面的方法。大家都遵循这个协议,就能实现信息传输。

    HTTP请求(Request)消息:客服端发送给服务器的消息

    HTTP响应(Response)消息:服务端返回客户端的消息

2.http协议的工作流程

    (1)客户端连接到web服务器

    一个HTTP客户端,通常是浏览器,与web服务器的HTTP端口(默认80)建立一个TCP套接字连接,如,

  http://www.baidu.com

        (2)发送http请求

       通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

        (3)服务器接受请求并返回HTTP响应

        web服务器解析请求,定义请求资源,服务器讲资源复本写到TCP套接字,由客户端读取,一个响应由状态、响应头部、空行、和响应数据组成。

        (4)释放连接TCP连接

    客户端和服务端建立建立连接,客户端沿着建立好的连接发送请求,服务端返回响应消息信息再断开连接。

        (5)客户端浏览器解析HTML内容

        客户端浏览器首先解析状态行,查看表明是否成功的状态码,然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTMl语法对其进行格式化,并在浏览器窗口显示。

        例如:在浏览器地址栏输入URL,按下回车之后会经历以下流程:

        1、浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址;

        2、解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;

        3、浏览器发出读取文件(URL中域名后面部分对应的文件)HTTP请求,请求该报文作为TCP三次握手的第三个报文数据发送给服务器;

        4、服务器对浏览器请求作出响应,并把对应的HTML文本发送给浏览器;

        5、释放TCP连接;

        6、浏览器将该HTML文本并显示内容;

3.    HTTP请求的状态码

        1xx    指示信息--表示请求已接收,继续处理

        2xx    成功--表示请求已被成功接收,理解,接受

        3xx    重定向--要完成请求必须进行更进一步操作

        4xx    客户端错误--请求有语法错误或请求无法实现

        5xx    服务器端错误--服务器未能实现合法的请求

     常见的状态码

       200    OK    客户端请求成功

        400    Bad Request    客户端请求有语法错误,不能被服务器所理解

        401    Unauthorized    请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用

        403    Forbidden    服务器收到请求,但是拒绝提供服务

        404    Not    Found    请求资源不存在,输入了错误的URL

        500    Internal   Server    Error    服务器发生不可预期的错误

        503    Server    Unavailable    服务器当前不能处理客户端的请求,一段时间后可能恢复正常 

.jQuery 的AJAX请求

    $.ajax({

                    type: "GET", //GET/POST/PUT/DELETE/HEAD

                    url: "URL", //请求URL地址

                    data: "k=v"或{k:v} //要提交的请求数据

                    beforeSend: fn, //请求发送之前的回调函数

                    success: fn, //响应成功的回调函数

                    error: fn, //响应失败的回调函数

                    complete: fn //响应完成的回调函数,不论成功与失败

})

                响应成功回调顺序:

                    beforeSend => success => complete

                响应失败回调顺序:

                    beforeSend => error => complete;

4.    axios

        axios是一个基于promise用于浏览器和node.js的HTTP客户端;

    axios的特点:

    (1)从浏览器中创建 XMLHttpRequest

    (2)从node.js中发出http请求

    (3)支持promise API

    (4)拦截请求和响应

    (5)转换请求和响应数据

    (6)取消请求

    (7)自动转换json数据

    (8)客户端支持防止CSRF/XSRF

        vue中axios的ajax请求:

          let axios = require('axios')

    axios.type(请求方式)('url',{params:{id:12345}//通过parmas传递进来的参数}).then(function(response);

        console.log(response);

) .catch(function(error){

console.log(error);

});

5. 微信小程序的ajax请求

    wx.request({

    url://路径

    method://请求方式

    dataType://    请求数据类型

    data://传递的参数

    header: {

            'Content-Type': 'xxxx'

}

    success:function(res){

        

}

})

上一篇下一篇

猜你喜欢

热点阅读