关于设置http响应头connection的作用

吃透HTTP一:Http请求HttpUrlConnectionHttpClient、OKHttp详细介绍 一,HTTP概述 HTTP协议是无状态的协议,即每一次请求都是互相独立的。因此它的最初实现是,每一个http请求都会打开一个tcp socket连接,当交互完毕后会关闭这个连接。 HTTP协议是全双工的协议,所以建立连接与断开连接是要经过三次握手与四次挥手的。显然在这种设计中,每次发送Http请求都会消耗很多的额外资源,即连接的建立与销毁。 于是,HTTP协议的也进行了发展,通过持久连接的方法来进行socket连接复用。 HTTP/1.0+的Keep-Alive 使用HTTP/1.0的客户端在首部中加上"C 阅读详情
 有的网站会在服务器运行一段时间后down掉,有很多原因可能造成这种现象:比如tomcat堆和非堆内存设置不足,程序没能释放内存空间造成内存溢出,或者某些进程一直运行没能释放,造成cup资源大量消耗。

      但除了程序本身的原因,还有可能是客服端访问造成(当然这个客户端也包含如蜘蛛软件等搜索引擎),如果服务器和客户端建立的是长链接(可以用"netstat -a"命令查看网络访问信息),这就需要对http响应头的connection做一定的设置。

      介绍如下:

 

1. 解释一下:

 

    在http1.1中request和reponse header中都有可能出现一个connection头字段,此header的含义是当client和server通信时对于长链接如何进行处理。

    在http1.1中,client和server都是默认对方支持长链接的, 如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close.

    不论request还是response的header中包含了值为close的connection,都表明当前正在使用的tcp链接在请求处理完毕后会被断掉。以后client再进行新的请求时就必须创建新的tcp链接了。 HTTP Connection的 close设置允许客户端或服务器中任何一方关闭底层的连接双方都会要求在处理请求后关闭它们的TCP连接。

 

2.如何在程序中设置:

 

    可以在过滤器中加入:response.setHeader("connection", "close");

 

 

 

与之相关:解决服务器产生大量close_wait问题

 

 

要解决这个问题的可以修改系统的参数(/etc/sysctl.conf文件),系统默认超时时间的是7200秒,也就是2小时。

默认如下:

tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds


意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe 9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效


修改后


sysctl -w net.ipv4.tcp_keepalive_time=30
sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_keepalive_intvl=2


经过这个修改后,服务器会在短时间里回收没有关闭的tcp连接。

从PWM到正弦波:RC低通滤波器的魔法转换之旅 本文详细介绍了如何利用RC低通滤波器将STM32F103生成的PWM信号转换为高质量正弦波的技术原理与实践方法。通过分析滤波器设计、参数计算、硬件实现及Proteus仿真验证,为嵌入式开发者提供了一套完整的PWM转正弦波解决方案,适用于电机控制、音频信号生成等多种应用场景。 阅读详情

相关推荐

MIA文献阅读 —— 深度学习在医学图像分析中的最新进展及临床应用【2024】_再现性;深度学习

coderVAEVAEVAE) (Kingma威林,2014)在概率性的工作方式学习观测数据之间的映射空间x∈Rmx∈R^mx∈Rm 和潜在的空间z∈Rnmnz∈Rn(m>>n)。作为一个潜变量模型,VAEVAEVAE制定这个问题作为观察样品的最大化对数似logpxlog∫px∣zpzdzpx∣zp (x | z)p(x∣z)可以很容易地使用神经网络建模,和pzp (z)

2401_84181704的博客 1224

深入理解HTTP协议

转自:http://www.360doc.com/content/10/0930/17/3668821_57590979.shtml 1. 基础概念篇 1.1 介绍   HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet En

阿金正传 2015

电工电子实验期末A(一)复习(南邮贝院)

适合计算机学院、通院、贝院电子电工实验(一)课程【如果没有改版的话】内容包括:非线性电阻的伏安特性:发光二极管的使用,伏安关系曲线(导通点,稳压点,画图注意事项)戴维南电路和诺顿电路常用电子仪器的实验:示波器,信号发生器等等一阶电路的阶跃响应:时间常数的计算、测量,背公式,画出实验波形,三要素的计算和测量方法RLC 串联谐振电路:公式,波形,设计,高通/低通电路晶体二极管的基本应用:限幅,频域电路,设计晶体管单极电压放大电路:公式、设计,波形,失真原因,设计失真,示波器耦合方式差动放大电路:九套公式,示波器耦合方式,示波器观察双端输出波形集成运放的线性应用与非线性应用:示波器耦合方式,图,公式方波发生器文氏震荡整流电路

(二)HTTP-进阶篇

HTTP-进阶篇HTTP连接管理 HTTP连接管理 客户端与服务器的整个连接过程很短暂,不会与服务器保持长时间的连接状态,因此被称为“短连接”。 长连接也叫持久连接 服务器会发送Connection:keep-alive字段表示启用了长连接 报文头里如果有Connection:close意味着长连接即将关闭 TCP连接长时间不关闭,服务器必须在内存中保存其状态,这就占用了服务器的资源,如果有大量的...

lichao000124的博客 677

Connection: close和Connection: keep-alive有什么区别?

看到有人问Connection: close和Connection: keep-alive有什么区别?想起以前学习到的一篇文章,今天转载来,大家看看,我也再温故知新下。如果有问题补充的在下面可以扩充下。等忙完了,我也再补充些。 一、问题现象: 一个JSP页面,居然要耗时40多秒。网页中有大量的图片的CSS 问题解决: 原因也找了半天,原来Apache配置里面,把Keep-Alive的开

stand up 3210

header connection 个人理解

响应头中 看到有如下代码HTTP/1.1 200 OK Date: Thu, 19 Oct 2017 06:26:46 GMT Server: Apache/2.4.23 (Win64) PHP/5.6.25 X-Powered-By: PHP/5.6.25 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, n

发粪涂墙的博客 3223

前端http的请求头都有那些信息?

http的请求头都有那些信息 每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 Accept-Encoding:浏览器能够处理的压缩编码 Accept-Language:浏览器当前设置的语言 Connection:浏览器与服务器之间连接的类型 Cookie:当前页面设置的任何Cookie Host:发出请求的页面所在的域 Referer:发出

weixin_59519449的博客 1862

Servlet学习----http响应

响应头 头信息 描述 Allow 这个头信息指定服务器支持的请求方法(GET、POST 等)。 Cache-Control 这个头信息指定响应文档在何种情况下可以安全地缓存。可能的值有:public、private或no-cache等。Public 意味着文档是可缓存,Private 意味着文档是单个用户私用文档,且只能存储在私有(非共享)缓存中,no-cache...

nonpricklycactus的博客 279

Servlet 服务器 HTTP 响应

头信息描述 Allow这个头信息指定服务器支持的请求方法(GET、POST 等)。 Cache-Control这个头信息指定响应文档在何种情况下可以安全地缓存。可能的值有:public、private 或 no-cache 等。Public 意味着文档是可缓存,Private 意味着文档是单个用户私用文档,且只能存储在私有(非共享)缓存中,no-cache 意味着文档不应被缓存。 Connect...

xiaoxiong_9的博客 162

http header详解

http header详解一、request header二、response header 一、request header 1.Accept 作用: 浏览器端可以接受的媒体类型, 例如: Accept: text/html 代表浏览器可以接受服务器回发的类型为 text/html 也就是我们常说的html文档,如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable) 通配符 * 代表任意类型 例如 Accept: / 代表浏览器可以处理所有类型,(一般

faramita_of_mine的博客 8105
上一篇: 在 Eclipse Galileo 中轻松导航
下一篇: HTTP协议,头部不存在 Content-Length 时
JasonTome
博客等级 码龄15年 68粉丝 219原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值