日期:2014-05-18  浏览次数:20833 次

可以用UPD协义获取网页吗?
很多关于爬虫的文章里都有说到用UDP取代TCP 来获取网页可以提高效率。可是我又看到一些别的文章里说HTTP不支持UDP协义
请高手们解答呀

------解决方案--------------------
你可以先明白一下tcp和udp的区别 。这样可以对你有帮助
------解决方案--------------------
http不是在TCP之上的协议吗?
------解决方案--------------------
这个还真不知道,你给网站发送UDP信息,然后网站给你回UDP信息?
------解决方案--------------------
看起来http协议没有指定底层必须使用是么传输协议,只是要求可靠的传输。

****************************************************************
From RFC 2616:

HTTP communication usually takes place over TCP/IP connections. The default port is TCP 80, but other ports can be used. This does not preclude HTTP from being implemented on top of any other protocol on the Internet, or on other networks. HTTP only presumes a reliable transport; any protocol that provides such guarantees can be used; the mapping of the HTTP/1.1 request and response structures onto the transport data units of the protocol in question is outside the scope of this specification.

So although it doesn't explicitly say so, UDP is not used because it is not a "reliable transport".
****************************************************************
上述来自
http://stackoverflow.com/questions/323351/does-http-use-udp

问题是你给web server发一个udp消息,web server会理吗?
------解决方案--------------------
IIS6站点属性中端口前面的Label是TCP Port.
------解决方案--------------------
1 楼主你想要做什么??
2 楼主你了解HTTP协议么,你不了解至少应该知道Http是基于TCP协议的吧?
3 UDP抓取WEB页面.不大可能.IIS就是基于TCP的.你UDP怎么去抓?
------解决方案--------------------
探讨
引用:

看起来http协议没有指定底层必须使用是么传输协议,只是要求可靠的传输。

****************************************************************
From RFC 2616:

HTTP communication usually takes place over TCP/IP……

------解决方案--------------------
UDP是: 
while(true)
{
你给我个网页吧(我不管服务器给不给,我反正要了)
这个句话也被执行.
继续循环
}
Tcp是:
while (true)
{
try
{
你给我个网页吧
}
cath
{
服务器不给就到这了.
}
}
------解决方案--------------------
http://www.cnpaf.net/forum/forum.php?mod=viewthread&tid=5341


温习一下啥是http

HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在 http和其他几种网络协议
[1]多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
------解决方案--------------------
超文本传输协议(HTTP)是目前通过Internet进行信息交换最主要的方式。
HTTP协议是建立在请求/响应(request/response)模型上的。
首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME(Multipurpose Internet Mail Extensions)样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息(包含服务器的信息、资源实体的信息和可能的资源内容)。图1给出了HTTP协议实现的一个简单模型。
HTTP/1.0[3]为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1[4]提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。

不可能用UDP来实现的,如果udp能跟web通信,那么webQQ实现起来也就不用那么麻烦了.
------解决方案--------------------
探讨
http不是在TCP之上的协议吗?