zoukankan      html  css  js  c++  java
  • http keep alive

    2、http:

    请求-响应语义:client发送一个请求,服务器返回响应信息。最初每个请求与server创建一个新的socket连接,用该连接发送请求,获取相应信息,关闭连接。

    优点:简单,易于描述、理解、编程。

    缺点:效率低。

    3、keep alive:

    HTTP/1.0,请求增加头Connection:Keep-Alive,server在响应增加头:Connection:Keep-Alive。一次请求完成后,连接保持,clent再发送一个请求时,使用同一个连接,直到client或者server认为会话结束,决定关闭该连接。
    HTTP/1.1 ,默认keep-alive,否则需在头中加Connection:close;Connetion:Keep-Alive无意义。
    不可靠性:HTTP是一种无状态的协议,多次请求之间互相独立,keep-alive也同样,也没有保证client或者server会保持连接open;即使在1.1中,所能做到的也只是可能得到一个连接正被关闭的信息,因此keep-alive不是你编程时可以依赖的。
    Keep-Alive与POST:在HTTP/1.1协议中声明POST的body后不应有任何字符,但也允许有些浏览器在其后加入CRLF。有两种方法处理这种问题:在POST时不用keep-alive,或者server忽略CRLF。

    4、实现keep-alive
    Java-client端:java.net.HttpURLConnection类自动实现了keep-alive,不需要也不能干预。原理是建立client连接池。
    Java-server端:HttpServlet, HttpServletRequest, HtppServletResponse几个类自动实现keep-alive,编程时可以设置respone的content lenth,如果设置了相应内容长度,或者server端缓存的内容长度大于4k,client支持keep-alive,则使用keep-alive。

  • 相关阅读:
    EF的连表查询Lambda表达式和linq语句
    C#.NET里面抽象类,接口,虚方法
    ASP.Net WebAPI的返回值
    IHttpActionResult不识别解决办法
    web api 开发之 filter
    SQL语句大全教程
    ASP.NET Web API 跨域访问(CORS)要注意的地方
    铁乐学python_shelve模块详解
    铁乐学python_day25_序列化模块
    铁乐学python_day24_面向对象进阶1_内置方法
  • 原文地址:https://www.cnblogs.com/toven/p/2682190.html
Copyright © 2011-2022 走看看