zoukankan      html  css  js  c++  java
  • HTTP 协议

    HTTP 协议规定, 请求从客户端发出, 最后服务器端响应该请求并返回。 换句话说, 肯定是先从客户端开始建立通信的, 服务器端在没有接收到请求之前不会发送响应。

    请求报文是由请求方法、 请求 URI、 协议版本、 可选的请求首部字段和内容实体构成的。

     

    响应报文基本上由协议版本、 状态码(表示请求成功或失败的数字代码) 、 用以解释状态码的原因短语、 可选的响应首部字段以及实体主体构成

     

    HTTP 是一种不保存状态, 即无状态(stateless) 协议。 HTTP 协议自身不对请求和响应之间的通信状态进行保存。 也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理,但是这种情况不利于登录状态的记录,所以出现了cookie

    Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息, 通知客户端保存 Cookie。 当下次客户端再往该服务器发送请求时, 客户端会自动在请求报文中加入 Cookie 值后发送出去。服务器端发现客户端发送过来的 Cookie 后, 会去检查究竟是从哪一个客户端发来的连接请求, 然后对比服务器上的记录, 最后得到之前的状态信息。

    告知服务器意图的 HTTP 方法

    GET : 获取资源

    POST: 传输实体主体

    PUT: 传输文件

    HEAD: 获得报文首部

    DELETE: 删除文件

    OPTIONS: 询问支持的方法

    TRACE: 追踪路径

    CONNECT: 要求用隧道协议连接代理

     

    持久连接

    HTTP 协议的初始版本中, 每进行一次 HTTP 通信就要断开一次 TCP连接。

    为解决上述 TCP 连接的问题, HTTP/1.1 和一部分的 HTTP/1.0 想出了持久连接(HTTP Persistent Connections, 也称为 HTTP keep-alive 或HTTP connection reuse) 的方法。 持久连接的特点是, 只要任意一端没有明确提出断开连接, 则保持 TCP 连接状态。持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销, 减轻了服务器端的负载。 另外, 减少开销的那部分时间, 使HTTP 请求和响应能够更早地结束, 这样 Web 页面的显示速度也就相应提高了

    管线化

    持久连接使得多数请求以管线化(pipelining) 方式发送成为可能。 从前发送请求后需等待并收到响应, 才能发送下一个请求。 管线化技术出现后, 不用等待响应亦可直接发送下一个请求。

  • 相关阅读:
    [solr]
    [solr]
    [Linux] CentOS 加入开机启动
    [Linux] VirtualBox
    [Eclipse]
    [JBoss]
    [solr]
    [solr]
    [solr]
    [solr]
  • 原文地址:https://www.cnblogs.com/wyongz/p/11381964.html
Copyright © 2011-2022 走看看