Connection:Keep-alive

名词解释:

HTTP无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系

如果你要实现一个购物车,需要借助于Cookie或Session或服务器端API(如NSAPI and ISAPI)记录这些信息,请求服务器结算页面时同时将这些信息提交到服务器

当你登录到一个网站时,你的登录状态也是由Cookie或Session来“记忆”的,因为服务器并不知道你是否登录

优点:服务器不用为每个客户端连接分配内存来记忆大量状态,也不用在客户端失去连接时去清理内存,以更高效地去处理WEB业务

缺点:客户端的每次请求都需要携带相应参数,服务器需要处理这些参数

参考:http://en.wikipedia.org/wiki/Stateless_protocolhttp://www.webopedia.com/TERM/S/stateless.html

Keep-Alive:参考另外一篇文章HTTP Keep-Alive 详解

容易犯的误区:

1、HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)

2、从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

3、Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

时间: 2024-10-10 09:59:54

Connection:Keep-alive的相关文章

connection=keep alive 和 close

浏览器和服务器在建立http连接的时候 需要3次握手,在高并发的环境下每一次建立连接都3次握手会消耗太多的服务资源,这个本质上是由于http是无状态造成的.http1.0默认开启了connection=close 模式意味着服务器和客户端都需要关闭TCP连接,而客户端是通过判断连接关闭来判断响应是否都收到了.http1.1 默认开启connection=keep-alive模式(长连接),主要为了解决浏览器内高并发的访问服务器资源,而且每次的访问都可以复用连接,从而提高响应速度.但是也需要注意,

Connection类之ConnectionStatic.cs(NetworkComms 2.3.1源码了解和学习)

networkComms.net2.3.1开源版本,基于gpl V3协议.因为不能公开3.x版本的源码,所以基于此版本进行学习.3.X版本进行了诸多改进和Bug修复,使用方法上两者相差不大. namespace NetworkCommsDotNet { /// <summary> /// Connection对象 这个类是TcpConnection和 UDPConnnection连接类的父类 /// Connection由以下五个文件组成 大家注意到每个类前面都有个 partial关键字 //

[转]应用服务器ApacheSocketUnixthread

HttpClient容易忽视的细节——连接关闭 博客分类: java Java代码   HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("http://www.apache.org"); try { client.executeMethod(method); byte[] responseBody = null; responseBody = method.getResponseBody()

爬取知乎某个问题下所有的图片

最近在逛知乎时,看到这么一个问题 最高赞的答案写了个爬虫,把所有的照片都爬下来了. 嘿嘿嘿,技术的力量 正好自己也在学习,加上答主的答案是很久之前的,知乎已经改版了,所以决定自己用Python3写一个练习一下(绝对不是为了下照片).... 设个小小的目标:爬取所有"女性"程序员的照片. 首先是要知道"总的回答数",这个比较简单: url="https://www.zhihu.com/question/37787176"html=requests.

最终版的Web(Python实现)

天啦,要考试了,要期末考试了,今天把最终版的Python搭建Web代码先写这里记下了.详细的过程先不写了. 这次是在前面的基础上重写 HTTPServer 与 BaseHTTPRequestHandler,主要利用 python 提供 的 socket 进行编程,从而实现消息的接收与相应:然后再接着引入多线程,分别处理来自客户端的请求:最后实现根据客户端传递的参数动态生成页面的功能. 主要步骤如下: 一. .重写 HTTPServer 与 BaseHTTPRequestHandlerPython

httpcomponents-client-4.4.x

Chapter 1. Fundamentals Prev     Next Chapter 1. Fundamentals 1.1. Request execution The most essential function of HttpClient is to execute HTTP methods. Execution of an HTTP method involves one or several HTTP request / HTTP response exchanges, usu

httpcomponents-client-ga(4.5)

Chapter 1. Fundamentals Prev     Next Chapter 1. Fundamentals 1.1. Request execution The most essential function of HttpClient is to execute HTTP methods. Execution of an HTTP method involves one or several HTTP request / HTTP response exchanges, usu

c#网络通信框架networkcomms内核解析之十一 TCP连接与UDP连接

连接是通信的核心 客户端一般只会有一个连接 服务器端会维护成千上万的连接 在服务器端连接的维护工作是由NetworkComms静态类来完成的,当有新的客户端请求,服务器上会创建相应的连接,并把连接注册到NetworkComms静态类中.当连接断开后,NetworkComms通信框架会自动把相应连接的引用从NetworkComms静态类中删除. 连接的类图: 在V3以上版本中,数据监听部分已从Connnection类中提取出去成为一个单独的类: TCPConnectionListener   ,使

c#网络通信框架networkcomms内核解析之四 心跳检测

在网络通信程序中,心跳检测是必不可少的,我们来看一下networkcomms中是如何实现的 以networkcomms2.3.1为例: 在服务器端,会有一个线程专门用来发送心跳消息 代码如下: protected static void TriggerConnectionKeepAliveThread() { lock (staticConnectionLocker) { if (!shutdownWorkerThreads && (connectionKeepAliveWorker ==

python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)

没事想爬下数据,就入了scrapy坑,跟着https://zhuanlan.zhihu.com/data-factory这篇教程走,中间被小数量的网站坑过,不过还是写出了爬虫~~ 切糕王子:毫无防御,直接scan就可以了: 尚妆网:进这个网站时才发现,这和说好的不一样!!!这个网站也是采用了拖动到底才加载,不过貌似不能拖到底,要移到稍微上面才能加载?不过那个教程说的根据探查到的url找出规律,再伪装参数这点还是有用的 批量爬取商品url代码(只有ShowjoySpider): # -*- cod