为什么我会收到带有 404 状态代码的 net::ERR_HTTP_RESPONSE_CODE_FAILURE

Luk*_* 64 5 webserver http

我正在编写一个简单的 c# Web 服务器,每当它给出 404 状态时,我总是得到net::ERR_HTTP_RESPONSE_CODE_FAILURE而不是 404。所有其他状态都工作正常,但这个状态除外。我尝试查找拼写错误,但一切看起来都是正确的,而且它显示加载资源失败,而不是像其他网站一样获取 example.com 404(未找到) 。我主要想知道为什么与其他网站相比,反应有所不同。

以下是给出这些结果的响应示例:

HTTP/1.1 404 Not Found
Date: 
Server: MADSC
Content-Length: 196
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)

这里是生成响应的代码

    public void WriteToStream(Stream stream)
    {
        try
        {
            string httpHeaders;

            if (dataPath.Length > 0)
            {
                FileStream fs = new FileStream(dataPath, FileMode.Open, FileAccess.Read);

                long streamSize = fs.Length;

                httpHeaders = GenerateHttpHeaders(streamSize);

                WriteHttpHeadersToStream(httpHeaders, stream);

                fs.CopyTo(stream);

                return;
            }

            int dataSize = data.Length;

            httpHeaders = GenerateHttpHeaders(dataSize);

            WriteHttpHeadersToStream(httpHeaders, stream);

        }
        catch (Exception e)
        {
            Console.WriteLine("Exception While Writing Response:" + e.ToString());
        }
    }

    string GenerateHttpHeaders(long dataSize)
    {
        //Gets Response Code Discription
        string responseCodeText = HttpResponseCodes.ResponseCodeText(responseCode);

        //Creates And Adds Status Line
        string httpStringData = $"HTTP/1.1 {responseCode} {responseCodeText}\n";

        //If Present Adds Headers
        httpStringData += HeadersToString();

        httpStringData += $"Date: \nServer: {server}\n";

        httpStringData += $"Content-Length: {dataSize}\nContent-Type: {contentType}\n";

        //Adds Data Seperator
        httpStringData += "\n";

        return httpStringData;
    }
Run Code Online (Sandbox Code Playgroud)