可以触发HTTP请求的HTML元素

时间:2016-06-16 08:12:51

标签: javascript html http http-method

鉴于网页,我想检测一下:

  • 页面中的哪些元素可能会触发http请求?
  • 对那些人 元素,我想知道http方法是什么(POST, 相关请求的GET等)。

我认为这是一个棘手的问题......但是有没有任何指标可以暗示一个或另一个选项?

1 个答案:

答案 0 :(得分:7)

我想说任何具有URI类型属性的元素都能够触发HTTP请求,并且任何具有属性的元素(如果类型脚本都可以通过javascript触发它)。

我们可以从此列表中筛选出来: https://www.w3.org/TR/REC-html40/index/attributes.html

并基于此问题的接受答案: COMPLETE list of HTML tag attributes which have a URL value?

这为您提供了url类型属性的列表(请参阅下面的引用答案)。

至于脚本类型属性,包括onclick,onkeypress等,这意味着,我相信你会留下一大堆不能触发http请求的元素。

引用答案:

查看W3C的HTML属性列表,其中包含"类型"在那里的列,只是寻找URI类型。

当然,该列表的HTML 5版本也很有用

因此,对于HTML4,我们得到了:

  • <a href=url>
  • <applet codebase=url>
  • <area href=url>
  • <base href=url>
  • <blockquote cite=url>
  • <body background=url>
  • <del cite=url>
  • <form action=url>
  • <frame longdesc=url><frame src=url>
  • <head profile=url>
  • <iframe longdesc=url><iframe src=url>
  • <img longdesc=url>以及<img src=url><img usemap=url>
  • <input src=url><input usemap=url>
  • <ins cite=url>
  • <link href=url>
  • <object classid=url><object codebase=url>以及<object data=url><object usemap=url>
  • <q cite=url>
  • <script src=url>

HTML 5添加了一些(HTML5似乎也没有使用上面的一些):

  • <audio src=url>
  • <button formaction=url>
  • <command icon=url>
  • <embed src=url>
  • <html manifest=url>
  • <input formaction=url>
  • <source src=url>
  • <video poster=url> and <video src=url>

这些不一定是简单的网址:

  • <object archive=url> or <object archive="url1 url2 url3">
  • <applet archive=url> or <applet archive=url1,url2,url3>
  • <meta http-equiv="refresh" content="seconds; url">

此外,style属性可以包含带有一个或多个url的css声明。例如:<div style="background: url(image.png)">