你如何定义HTTP对象?

时间:2013-05-31 15:41:16

标签: http networking web network-programming

我的书和讲师说,非持久性HTTP连接为每个HTTP对象打开了单独的TCP连接(维基百科说“对于每个HTTP请求/响应对”)。

但是如何定义HTTP对象是什么?一个包含10个图像,3个视频和10个不同HTML文本段落的网站。这有多少个对象? 网站只是一个对象,所以我们只需要一个HTTP请求和一个TCP连接吗?或者这是23个不同的HTTP对象吗?

如果我说你需要一个网站的HTTP请求,然后10个新的图像,3个新的视频,这是正确的吗?但是文本呢?

谢谢:)

5 个答案:

答案 0 :(得分:1)

是的,你需要连接每个...除了文本,文本是HTML的一部分,所以它下载在同一个文件中。

通常的过程:

  • 打开连接下载网页(除非包含html文件文本 每个都被注入页面,即ajax请求等,然后是每个的http连接)
  • 解析图片等网址
  • 为每个图片,视频,swf,javascript,css等文件打开连接

答案 1 :(得分:0)

你可以在网站上有一个html连接,包括直接在html中的文本(如果每个段落在它自己的iframe中,那么它就是一个连接),还有你有每个图像一个,每个视频一个。

答案 2 :(得分:0)

为每个文件完成一个HTTP请求:一个用于包含页面文本和标记的HTML文件,一个用于图像文件,依此类推。

答案 3 :(得分:0)

没有“HTTP对象”这样的东西,所以你的问题确实没有意义。

资源,它们是通过HTTP URL获取的。

基本上,HTML页面中的每个src =属性都命名另一个资源,当然页面本身也是一种资源。

答案 4 :(得分:0)

HTTP对象只是最通用的术语,意思是“由URL标识的内容” :)它已用于HTTP规范中(完全与面向对象编程无关):

https://www.w3.org/Protocols/HTTP/Request.html

关于 TCP / IP 问题:

浏览器可以建立连接池,这意味着它可以将已建立的TCP(和TLS)重用于更多后续请求,从而节省一些开销。这由Connection: keep-alive HTTP / 1.1标头控制,并且对于加载对象(资源)的网页完全透明。