work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Http长连接

Posted on 2019-03-17 21:31  work hard work smart  阅读(286)  评论(0编辑  收藏  举报

1、Http长连接

Http的请求时在TCP连接上进行发送的,TCP的连接分为长连接和短连接

打开www.baidu.com,查看Connection ID 如下图。 Connection ID代表TCP连接的ID,可以区分是否用的是同一个TCP连接

如果域名不一样,Connection ID会不一样。

比如Chrome允许并发创建6个TCP连接,其它要连接要等这6个创建完成,才能创建。

 

2、如何保证长连接

keep-alive代表这个连接时保持的,就不会请求完毕后就被关闭

 

请求头中也有keep-alive

 

 

3、测试

1)server.js

const http = require('http');
const fs = require('fs')

http.createServer(function(request, response){
    console.log('request com', request.url)
   
    //html格式
    if(request.url === "/"){
        const html = fs.readFileSync("test.html",'utf-8')
        response.writeHead(200,{
            'Content-Type':'text/html'
        })
        response.end(html)
    } //图片JPG格式
    else{
        const img = fs.readFileSync("test.jpg")
        response.writeHead(200,{
            'Content-Type':'image/jpg'
        })
        response.end(img)
    }

   
    


}).listen(8888);

console.log('server listening on 8888')

  

2) html 文件

<html>
    <head>
        <title>Document</title>
    </head>
    <body>
        <img src="/test1.jpg" alt="">
        <img src="/test2.jpg" alt="">
        <img src="/test3.jpg" alt="">
        <img src="/test4.jpg" alt="">
        <img src="/test5.jpg" alt="">
        <img src="/test6.jpg" alt="">
        <img src="/test7.jpg" alt="">
    </body>

  
   
</html>

  

还有一张test.jpg 文件

 

 输入http://localhost:8888/  如下图: 

 

如果html加载更多的图片,并发数为6

<html>
    <head>
        <title>Document</title>
    </head>
    <body>
        <img src="/test1.jpg" alt="">
        <img src="/test2.jpg" alt="">
        <img src="/test3.jpg" alt="">
        <img src="/test4.jpg" alt="">
        <img src="/test5.jpg" alt="">
        <img src="/test6.jpg" alt="">
        <img src="/test7.jpg" alt="">

        <img src="/test11.jpg" alt="">
        <img src="/test12.jpg" alt="">
        <img src="/test13.jpg" alt="">
        <img src="/test14.jpg" alt="">
        <img src="/test15.jpg" alt="">
        <img src="/test16.jpg" alt="">
        <img src="/test17.jpg" alt="">

        <img src="/test21.jpg" alt="">
        <img src="/test22.jpg" alt="">
        <img src="/test23.jpg" alt="">
        <img src="/test24.jpg" alt="">
        <img src="/test25.jpg" alt="">
        <img src="/test26.jpg" alt="">
        <img src="/test27.jpg" alt="">
    </body>

  
   
</html>

  

 

4、关闭长连接

 

 

则每个http请求都会创建一个TCP连接