美文网首页
http请求详解

http请求详解

作者: eveseven | 来源:发表于2018-12-07 13:57 被阅读0次

    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){

            

    }

    })

    相关文章

      网友评论

          本文标题:http请求详解

          本文链接:https://www.haomeiwen.com/subject/quhhcqtx.html