为了账号安全,请及时绑定邮箱和手机立即绑定

如果内容长度错误,Chrome 会关闭 tcp 连接吗?

如果内容长度错误,Chrome 会关闭 tcp 连接吗?

Go
阿波罗的战车 2023-06-05 18:35:52
我对 Web 服务器对 http keep-alive 标头的操作感兴趣。所以我在http server的基础上搭建了一个简单的http server。服务器除了用一个简单的 html http 正文响应客户端之外什么都不做。服务器的代码在这里:package mainimport (    "fmt"    "net"    "os")func main() {    l, err := net.Listen("tcp", "localhost:9765")    if err != nil {        fmt.Println("Error listening:", err.Error())        os.Exit(1)    }    defer l.Close()    for {        conn, err := l.Accept()        fmt.Println("New connection...")        if err != nil {            fmt.Println("Error accepting: ", err.Error())            os.Exit(1)        }        go handleRequest(conn)    }}// handlerfunc handleRequest(conn net.Conn) {    for {        buf := make([]byte, 512)        _, err := conn.Read(buf)        if err != nil {            fmt.Println("Error reading:", err.Error())            conn.Close()            break        }        fmt.Printf("%s", buf)        str := `HTTP/1.1 200 OKConnection: keep-aliveContent-Length: 8Content-Type: application/javascriptalert(1)`        conn.Write([]byte(str))    }}我向本地 nginx 静态服务器添加了一个演示 html:<head>    <meta charset="UTF-8">    <script type=text/javascript src="test.js"></script>    <script type=text/javascript src="http://localhost:9765/3"></script>    <script type=text/javascript src="http://localhost:9765/2"></script>    <script type=text/javascript src="http://localhost:9765/1"></script>    <script type=text/javascript src="http://localhost:9765/17"></script>    <script type=text/javascript src="http://localhost:9765/16"></script>    <script type=text/javascript src="http://localhost:9765/15"></script>    <script type=text/javascript src="http://localhost:9765/14"></script>    <script type=text/javascript src="http://localhost:9765/13"></script></head><body><h1>loader测试页面</h1><span>hello world</span></body></html>当用chrome访问文件时,我发现所有响应都是正常的,但是每次http请求后tcp连接都会关闭。TCP 在发送 http 响应后收到 EOF 错误。
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

如果您在标头中发送错误的内容长度,浏览器将挂起(等待永远不会出现的内容)或关闭连接(当它在内容后看到无效垃圾时)。它还能做什么?



查看完整回答
反对 回复 2023-06-05
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信