美文网首页
一个HTTP请求

一个HTTP请求

作者: 赫鲁晓夫的玉米棒子 | 来源:发表于2017-10-16 11:11 被阅读0次

    由于HTTP是应用层的协议,根据规定,只有底层协议建立之后才能进行更高层协议的链接。所以一个HTTP请求开始之前,浏览器需要与服务端建立链接,而该链接是通过TCP来完成的,该协议与IP协议共同构建Internet,即为TCP/IP协议族。但是,在我们浏览网页时,在浏览器的地址栏中通常显示的是易读易记的url地址,如www.jianshu.com,而这并不是上面所说的TCP/IP中的IP。所以在建立链接之前,一个网页的URL地址还先需要通过DNS转换为IP地址。
    1、通过DNS将易读的URL转换为IP地址
    2、建立TCP(/IP)链接

    当TCP链接建立后,浏览器就会向服务器发送请求,这个请求一般是GET或者POST请求。GET和POST请求的格式如下:

    1、请求行:

    GET的请求行
    //get
    GET 请求路径  HTTP/1.1
    //post
    POST 请求路径  HTTP/1.1
    

    2、请求头:

    请求头
    请求头以key:value的形式传递了各种信息。在POST请求中通常还会包括content-type:……,用来描述消息体。

    3、空行
    这个……就是空行……
    “咳,我请求头结束了。”

    4、消息体
    传输的内容
    通常只有POST请求有消息体。

    而GET与POST的跟本区别在于语义上的不同。GET用于获取资源(读),POST用于更新资源(写)。而且浏览器会在不同的使用场景使用不同的请求方式,如地址栏输入url、img、css等,会使用get请求,而from表单会使用post请求。当然也有一些其他方面的不同,如POST可以发送的内容更多,在某些情况下更加安全等。

    3、发送一个GET或POST请求
    服务器收到浏览器发来的请求后,进行相应的处理,而后服务器再向浏览器回送应答。其中就包含了协议版本号和答应状态码,如常见的200、304、404等。
    如同浏览器发送的请求,服务器发送的回应也有应答头、和消息体。在发送完应答头后,用一个空行表示应答头结束,后面接着发送消息体。
    4、服务器回送应答
    一般情况下,一个请求和应答完成后,就要关闭TCP链接。
    5、关闭链接

    相关文章

      网友评论

          本文标题:一个HTTP请求

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