服务器通常在响应中使用哪些HTTP方法(如果有的话)

我知道客户端的HTTP请求是什么样的,但是我很好奇的是服务器使用什么方法来返回页面呢?

客户:

GET /index.html HTTP/1.1 Host foo.com:80 

服务器:

 Does it perform an HTTP PUT of index.html ? If not, then what? Are HTTP methods used both ways? 

如果响应不使用HTTP方法,那么它只是一个包含有效载荷的TCP包(或多个包)? 数据包中是否有HTTP协议特定的信息?

可以使用以下方法之一发送HTTP请求:

> Get()

发出HTTP GET请求。 此方法使Web服务器返回请求的页面。

>头()

发出HTTP HEAD请求。 这个方法使Web服务器只返回响应的头文件而不返回正文。

>后()

发出HTTP POST请求。 使用此方法将数据发送到Web服务器(如表单的结果)或上载文件。

>放()

发出HTTP PUT请求。 使用此方法将数据上传到Web服务器。 PUT请求不常见。

>发送()

将指定types的HTTP请求发送到服务器。


服务器接收并解释请求消息后,会响应HTTP响应消息。

  Response = Status-Line ; Section 6.1 *(( general-header ; Section 4.5 | response-header ; Section 6.2 | entity-header ) CRLF) ; Section 7.1 CRLF [ message-body ] ; Section 7.2 

回复信息来自以下网站: W3.org

我会回答我自己的问题。 不,HTTP方法仅用于请求标头。 状态代码用于响应标题。 我知道我已经看到了双方的标题,应该能够说这个没有看,但我不知道。 在一个有用的论坛上提出这样一个问题(可以很容易地查找的问题)的好处是,有时候您会学到更多的东西,或者获得一些有助于加深理解的视angular。

第一

您的请求必须匹配HTTP协议。

IE的头部必须以空行结束:

 GET /index.html HTTP/1.1 Host foo.com:80 

注意:每条线都必须由CRLF来完成 ,不仅LFCR

 00000000 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 5c 72 |GET / HTTP/1.0\r| 00000010 5c 6e 48 6f 73 74 3a 20 66 6f 6f 2e 63 6f 6d 3a |\nHost: foo.com:| 00000020 38 30 5c 72 5c 6e 5c 72 5c 6e 0a |80\r\n\r\n.| 

服务器的答案可以匹配相同的forms:

标题 – 空行 – 正文

所以你可以通过使用sed来删除头文件,例如:

 nc foo.com 80 <<<$'GET / HTTP/1.0\r\nHost: foo.com:80\r\n\r' | sed '1,/^\r\?$/d' > index-of-foo.com.html 

或者只转储标题:

 nc foo.com 80 <<<$'GET / HTTP/1.0\r\nHost: foo.com:80\r\n\r' | sed '/^\r\?$/q' 

你可以在互联网上find你所有的答案:

第一次参考文献: 在w3.org上

或在维基百科:在维基百科上的http

怎么回答?

答案头包含了理解如何处理答案所需的全部信息。

Essentialy,有一个内容types ,需要告诉你的浏览器该怎么做。

服务器可能需要处理一些东西来构build他的答案,但是在服务器和客户端之间,只有一个(愚蠢的)TCP连接。

没有什么服务器可以要求客户做…

除了javascripthtml5css ), javaflash或其他dilbertlight之类的高级处理堆栈之间的交互式构造。