Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Web服务器头发送_C_Sockets_Header - Fatal编程技术网

C Web服务器头发送

C Web服务器头发送,c,sockets,header,C,Sockets,Header,我用C编写了一个简单的web服务器,它侦听连接并通过套接字发送一些文本。 我希望服务器能访问我的服务器。在这种情况下,我应该s*结束头,例如代码(200)、内容类型、内容长度* 如何将这些标头发送到客户端(浏览器或telnet) 如何提取请求的标题 (也许,我只是不明白这个问题,请投票否决我。) http响应头格式并不太难: header1\n header2\n <empty line>\n content\n content\n 因此,当您使用浏览器连接到web服务器时

我用C编写了一个简单的web服务器,它侦听连接并通过套接字发送一些文本。 我希望服务器能访问我的服务器。在这种情况下,我应该s*结束头,例如代码(200)、内容类型、内容长度*

  • 如何将这些标头发送到客户端(浏览器或telnet)
  • 如何提取请求的标题
    • (也许,我只是不明白这个问题,请投票否决我。)

      http响应头格式并不太难:

      header1\n 
      header2\n 
      <empty line>\n
      content\n 
      content\n
      
      因此,当您使用浏览器连接到web服务器时,它将弹出“另存为”对话框,而不是在浏览器窗口中显示下载的网页。如果您获得了该对话框,并且下载的文件也正常,那么您的Web服务器会正确发送标题

      G 这是另一个问题,客户机是否按照您(和W3C)的预期处理它们

      编辑:HTTP ok状态为:

      HTTP/1.1 200 OK\n
      

      谷歌搜索更多状态码。

      现在这是一个相当广泛的问题。标题是一行行文本。相应地解析/格式化。。。?谷歌搜索HTTP协议的规范,然后从那里开始。你@ern0在一定程度上是正确的。确切地说,我想知道如何将这些标题发送到浏览器。只是将它们作为空闲写入套接字吗//new_fd是套接字文件描述符'send(new_fd,“HTTP/1.0 200 OK\n”,16,0);发送(新的“内容类型:text/html\n”,24,0);发送(新的“内容长度:29\n”,20,0);发送(新的“文件内容”,10,0);'是的,就这些,没有任何魔力,只有空行。就像我说的,用浏览器试试。内容长度不是强制性的。
      HTTP/1.1 200 OK\n