2012-07-25 52 views
0

对于我的学校,我们必须做这些“咨询课”,告诉你有关大学等。完成课程后,我想知道是否能够使用来自PHP脚本的一组请求复制相同的过程与卷曲。GET请求是否包含隐藏的数据或参数?

我再次通过课程,这次使用Firebug和HTTP分析器。

让我惊讶的是,唯一的GET请求是在整个课程中发出的。

如果您好奇,这里是“课程”窗口的样子。这是一种幻灯片类型的东西,你阅读幻灯片,然后一些幻灯片对他们有疑问。最后,有一个测验,如果你不通过,这个教训不算。

我的问题是这样的:如果我要设置登录到我的帐户的PHP/cURL脚本,然后提出每一个请求,那么这个课程是否会被计算为完整?

现在很明显,这是不可能为你们知道他们的服务器和工作等...

我猜我要说的是,没有任何隐藏内容或字段,你可以通过一个GET请求?它似乎并不像课程窗口将足够的信息传递给服务器,以便知道课程是否完成。

非常感谢我的项目的任何建议和提示!

编辑:这是我的正式试运行(请不要做太多次):

正如你们许多人暗示,它没有工作....但我还没有完全知道为什么。

+0

你为什么不试试呢?有可能是因为cookies而无法使用,但也可能就这么简单。 – teh1 2012-07-25 07:33:28

+0

但是我用cURL存储cookie ... – hellohellosharp 2012-07-25 19:30:13

回答

0

像你说的,我们不能对他们的服务器的细节说话,但它可能做这些事情与GET请求,只是因为服务器可以使用cookie和存储状态(与这些Cookie相关联)在服务器上。

这给出了将外部隐藏信息传递给服务器的可能性。

你可以研究cookies,甚至是那个出现在他们URL中的东西。 BTW提示你他们至少使用了一些Java。 :)

+0

虽然我可以抓住jsessionid并且正确地做到了,因为它在主页的源代码中(登录后)。足够的cURL中有一个cookiejar吗?你是什​​么意思,将“隐藏的信息传递给服务器”。反正有没有收到这个信息? – hellohellosharp 2012-07-25 20:04:10

0

课程应用程序可能很好地将数据存储在会话或某些其他持久数据存储服务器端,并使用来自浏览器的令牌(通常是cookie或GET参数)在需要时查找该数据。

0

它是一个有点复杂的任务。只有cURL,你不能模拟执行JavaScript代码,AJAX请求等

+0

我知道,但这有什么关系?除了AJAX请求外,Javascript只是客户端,但这些AJAX请求是分析器选取的东西。这些GET请求来自AJAx。 – hellohellosharp 2012-07-25 19:26:29

+0

你必须知道要发送什么。 curl只需将html作为纯文本格式进行抓取,并且您可以执行的任何操作都是解析它并发送请求。卷曲不能做 – 2012-07-25 19:30:06

+0

我还是不明白你的意思?如果我打开了一个HTTP分析器,那么我的课程窗口和服务器之间的任何联系人都应该被拿起,对吧? – hellohellosharp 2012-07-25 20:01:36

0

我不知道你在做什么。对于一个HTTP是无状态协议,意味着服务器获取请求并对该特定请求(可能是GET,POST或任何可能有一些请求参数)作出响应。系统使用状态通常通过服务器创建会话并在客户端设置cookie在稍后的请求中传递会话ID来实现。会话ID用于识别客户端并跟踪他的会话。您在请求期间发送的所有内容都是纯文本。您最有可能得到的回应将取决于会话状态,并且也是纯文本。客户端没有隐藏客户端的内容。您只是不了解服务器在会话中保留了哪些信息,以及如何根据您在请求期间提供的信息和信息来处理请求。

+0

因此,如果我准确地复制了请求,使用相同的cookie,服务器是否不应该像处理我一样处理cURL实际上采用课程? – hellohellosharp 2012-07-29 00:11:28

+0

不管客户端是什么,只是发送(请求)到服务器的信息......并且可能是这些请求的顺序。 – Aidas 2012-08-06 12:23:16