2012-03-14 110 views
1

为查找URL创建一个简单的正则表达式,然后用另一个脚本来查看该站点是否发回数据会更容易吗?我一直在想,如果这是一个更快,更容易的解决方案,而不是花几年的时间来开发“完美”的URL检测正则表达式,只是为了让它在几天后崩溃。URL正则表达式匹配器(Idea)

如果任何人都可以找到基本页面访问/加载的速度测试,请在此处发帖以帮助回答我的问题。

此外,在服务器上不断发出这样的请求,比如每小时100次,有多难?

我要测试一下Javascript,使用/(http|www\.)\S+/gim作为正则表达式和60秒超时连接到请求的url。我会从网址做一个简单的“Title Grab”,然后记录试用期限。一旦我把它们全部想象出来,我就会发布速度。

这实在是没有太大的问题了,所以如果你发现任何真正帮助我与我的上述思想,你可能会收到自鸣得意回答对号这个“问题。

+0

这取决于你打算找多少网址,你是多久愿意等待来自远程Web服务器的响应(可能是向上或向下,或慢,或坠毁,或其他...) – 2012-03-14 21:40:27

+1

一个完全有效的网址可以给404一个看似无效的网址可能是正确的:[http://en.wikipedia.org/wiki///](http:/ /en.wikipedia.org/wiki///) - “有效”和“给404”有很大区别。 – Kobi 2012-03-14 21:55:25

+0

@GregHewgill你可以使用超时检查器轻松修复这些问题。 @Kobi如果你使用了一个简单的正则表达式,比如'/(http \:\/\/| www \。)\ S +/gim',你不应该有这些问题。 – Tgwizman 2012-03-14 22:08:31

回答

2

我觉得@Kobi创建的点是有效性的URL不同于存在该URL处的资源。有效的URL可能不指向当前资源。例如,URL http://bclennox.com/there-is-no-page-at-this-address将返回404,可能会失败即使您的测试是完全有效的网址,您的测试也是如此。

无论如何,如果您主要对为给定URL返回的HTTP状态感兴趣,则可以发出HTTP HEAD请求,而不是正常的GET。 HEAD返回一个小得多的有效载荷(只有头文件),这会大大加速你的请求。

下面是一个使用curl一个例子:

$ curl -I http://bclennox.com 
HTTP/1.1 200 OK 
Date: Thu, 15 Mar 2012 03:14:59 GMT 
Server: Apache 
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.9, Enterprise Edition 
ETag: "39cf7d1099a034de95dda297b18bfa2d" 
X-UA-Compatible: IE=Edge,chrome=1 
X-Rack-Cache: miss 
X-Runtime: 0.139410 
X-Request-Id: 50ce319e403ef4e6e468c2f4b9817691 
Cache-Control: max-age=0, private, must-revalidate 
Set-Cookie: _master_session=BAh7ByIQX2NzcmZfdG9rZW4iMWZhM0t1dTZiNjVWV1Q3YzlKVTZmdjRwK0FiWlpHUExVWXJnRlovd2R5aU09Ig9zZXNzaW9uX2lkIiU3YWEzZmNhYmYzYTQ2MDgwNTY5ZmU5MjhlNWU3ZDhmMA%3D%3D--c0f8c2bd6cccb1ff12f28da996dddbb50e448f1f; path=/; HttpOnly 
Status: 200 
Content-Type: text/html; charset=utf-8 
+0

尽管我认为有时会缓存 – vol7ron 2012-03-15 03:23:01

+0

所以我们假设这只是http的用法,“url检查”方法会比尝试创建一个“完美”的正则表达式更适合,考虑到时间为页面加载,消息加载或任何执行? – Tgwizman 2012-03-15 04:21:24

+0

我仍然不完全确定你的要求是什么。如果您主要关心在线状态,那么您的测试就会很好:快速检查HTTP URL,然后点击并查看响应。但是,我会建议通过Ajax或其他方式异步执行此操作,而不是强迫用户等待60秒以便无需反馈即可加载页面。 – Brandan 2012-03-15 14:01:11