可视化的最佳方法是使用数据包分析器(例如Wireshark)并遵循TCP流。 HTTP仅使用TCP发送以几行HTTP标头开头的数据流。 这些数据通常由HTML,CSS或XML组成,因此很容易阅读,但可以是通过Internet传输的任何类型的数据(可执行文件,图像,视频等)。
对于GET请求,您的计算机请求一个特定的URL,并且Web服务器通常以200状态代码进行响应,并且网页的内容直接在HTTP响应标头之后发送。 该内容与您在浏览器中查看网页源时所看到的内容相同。 您提到的查询字符串只是URL的一部分,并包含在计算机发送到Web服务器的HTTP GET请求标头中。 下面是对[http://accel91.citrix.com:8000/OA_HTML/OALogout.jsp?menu=Y,]的HTTP GET请求的示例,然后是来自服务器的302重定向响应。 一些HTTP标头因查看窗口的大小而被包装(实际上每行只包含一行),并且302重定向包括一个简单的HTML网页,并带有指向该重定向网页的链接(大多数浏览器会自动重定向任何302响应 到Location标头中列出的URL,而不显示HTML响应):
对于POST请求,您可能仍然具有查询字符串,但这并不常见,并且与正在发布的数据没有任何关系。 相反,数据会直接包含在浏览器发送到服务器的HTTP标头之后,类似于Web服务器用来响应GET请求的200响应。 在发布简单Web表单的情况下,此数据使用与查询字符串相同的URL编码进行编码,但是,如果您使用的是SOAP Web服务,则还可以使用多部分MIME格式和XML数据进行编码。
例如,这是位于Wireshark的遵循TCP流的HTTP POST到位于[http://192.168.24.23:8090/msh]的基于XML的SOAP Web服务的样子: