可以获取包含隐藏数据或参数的请求


Can GET Requests Contain Hidden Data or Paramters?

对于我的学校,我们必须做这些"咨询课",告诉你关于大学等的信息。完成课程后,我想知道我是否能够使用一组来自带有cURL的PHP脚本的请求来复制相同的过程。

我又复习了一遍,这次我打开了Firebug和HTTP分析器。

令我惊讶的是,在整个课程中,只有GET请求被发送出去了。

如果你好奇,下面是"课程"窗口的样子。这是一种PPT类型的东西,你阅读幻灯片,然后有些幻灯片上有问题。最后,有一个测验,如果你不通过,这节课就不算数了。

我的问题是:如果我设置了一个PHP/cURL脚本,登录到我的帐户,然后发出每一个请求,这节课会算完整吗?

现在很明显,你们不可能知道他们的服务器是如何工作的。。。

我想我想说的是,是否有任何隐藏的内容或字段可以通过GET请求传递?课程窗口似乎没有向服务器传递足够的信息,让服务器知道课程是否完成。

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

编辑:这是我的官方测试(请不要做太多次):

正如你们中的许多人暗示的那样,它没有起作用。。。。但我仍然不完全确定为什么。

就像你说的,我们不能谈论他们服务器的详细信息,但可以用GET请求做这些事情,因为服务器可以使用cookie并在服务器上存储状态(与这些cookie相关)。

这可能会给服务器传递额外的隐藏信息。

您可以研究cookie,甚至是出现在其URL中的jsessionid内容。BTW提示您,他们至少在使用一些Java。:)

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

这是一项有点复杂的任务。只有cURL,就无法模拟javascript代码、AJAX请求等的执行。

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