技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> php socket为什么这么慢,直到超时

php socket为什么这么慢,直到超时

浏览:3866次  出处信息

    问题是出在一次模拟http请求的把戏中,我之前还真没有注意到,但后来还是想明白了,多看看http协议不无坏处。当时我将其记录在内网了,发出来大家参考吧。教训啊,血淋淋的教训

    在项目开发过程中,自己写了一个基于HTTP的API,来完成服务器之间的通讯,在直接用socket模拟POST请求的时候,异常缓慢,大约需要5秒钟才有响应(从服务端返回的头部来看:Keep-Alive: timeout=5,max=100),后来用PHP自带的SOAP扩展来完成,结果速度出奇的快!60ms左右。

    同样是PHP差别为什么这么大?

    后来把我自己写的HTTP头部的connection设置为close,速度也变的非常快,可是调试soap的那个请求,connection是keep-alive的,默认的不声明connection也会被apache设定为keep-alive(http1.1协议默认启用keep-alive),所以,依此解释,自己模拟的POST不会这么慢!

    而且,通过ab测试,keep-alive所花费的时间是更短的,可是用php模拟就变的非常的长时间。。。。。。。。。。。。。唉!这到底是个什么诡异的问题呢。。。。

    到现在为止,我实际上没有真正找到这个问题的答案,只是暂时的将http头部的connection设为close,使得php socket不会那么慢,个人认为soap的那个请求是客户端主动断开连接了,没有十足的证据。

建议继续学习:

  1. 推荐一些socket工具,TCP、UDP调试、抓包工具    (阅读:9428)
  2. 推荐一些socket工具,TCP、UDP调试、抓包工具    (阅读:7265)
  3. 用unix socket加速php-fpm、mysql、redis的连接    (阅读:6502)
  4. 浅析linux kernel network之socket创建    (阅读:5706)
  5. nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket    (阅读:5004)
  6. web socket 心跳包的实现方案    (阅读:4926)
  7. python中的socket代理    (阅读:4812)
  8. TCP keep-alive & connection pool    (阅读:4821)
  9. ssh连接超时解决办法    (阅读:4481)
  10. netstat和web主机socket文件分析    (阅读:4435)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1