美文网首页我爱编程
图解HTTP之CH2-简单的HTTP协议

图解HTTP之CH2-简单的HTTP协议

作者: abyte | 来源:发表于2016-01-11 00:05 被阅读52次

    HTTP协议用于客户端和服务器之间的通信

    应用HTTP协议时,总是一端作为客户端发送请求,一端作为服务器响应请求,而且发送请求只能通过客户端发送。

    通过请求响应的交换达成通信

    请求总是由客户端发出,服务器响应,如果服务器没有收到请求不会作出响应的。
    比如说有一个请求的实例

    get.jpg

    请求的格式是 方法 + URI + HTTP版本还有可选的请求首部。
    响应的格式为 HTTP版本 + 状态码 + 状态

    HTTP是不保存状态的协议

    补充
    HTTP为了提供快速的连接和减少服务器的负担,以便可以更快地处理大量事务,设计之初故意使用成不保存状态的。但是无状态的HTTP不能满足现在的需求,于是有了Cookie。

    请求URI定位资源

    客户端向服务器请求资源时要带上要请求的资源,比如说

    https://www.baidu.com/img/baidu_jgylogo3.gif
    

    请求的就是百度首页的logo

    大量的HTTP请求

    对于这样一个网页,如果每请求一个资源都要三次握手对服务器造成的负担太大,而采用持久化(keep-active)以减小服务器的压力,同时也会提高网页的加载速度。
    持久连接的特点就是:任意一端没有断开连接,那么就保持TCP连接。

    使用Cookie的状态管理

    Cookie的作用是保存连接状态。比如说,登陆社交网站的用户需要持续的保持登陆的状态才能正常的上网,Cookie就是完成这样的事情。
    具体来说,客户端获取从服务器的响应里面的set-cookie字段信息,客户端在下一次请求时带上这个字段。服务器响应请求时会查看这个cookie的信息和之前保存的设备信息是否一致,如果一致那么就返回之前保存的状态。

    1. 没有cookie时的请求报文
    GET / HTTP/1.1
    HOST:gX.com
    *没有cookie信息
    
    1. 响应报文(服务器生成Cookie 信息)
    HTTP/1.1 200 OK
    Date:Sun, 10 Jan 2016 03:25:38 GMT
    Server:Apache
    <Set-Cookie:sid=143243234234323412355;path:/;Expires: Mon, 11 Jan 2016 15:55:31 GMT
    >
    
    1. 请求报文
    GET /image/ HTTP/1.1
    Host: hackr.jp
    Cookie:sid=143243234234323412355
    

    而《图解HTTP》一书中图文讲解的这个知识点特别生动

    noCookie.jpg Cookie.jpg

    相关文章

      网友评论

        本文标题:图解HTTP之CH2-简单的HTTP协议

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