HTML-элементы, которые могут инициировать HTTP-запрос

Учитывая веб-страницу, я хотел бы обнаружить:

  • Какие элементы на странице могут вызвать запрос http?
  • Для этих элементов я хотел бы знать, что такое метод http (POST, GET и т. д.) соответствующего запроса.

Я предполагаю, что это сложный вопрос ... но есть ли какие-либо индикаторы, которые могли бы указать на тот или иной вариант?


person Mugen    schedule 16.06.2016    source источник
comment
HTTP-запросы могут запускаться вручную или автоматически. Такие элементы, как <img/>, <iframe/>, <video/>, вызовут автоматический запрос. Такие теги, как <a/> и '‹input type=submit/›', можно активировать вручную. Практически любой элемент может инициировать запрос AJAX в зависимости от того, как реализован JS.   -  person Jackson    schedule 16.06.2016
comment
Стандартный список будет включать все, что имеет атрибут src или href; однако элемент <style> с url(...) где-то внутри него тоже может быть. <script> элементов полностью открытая игра. Потенциальный список довольно размытый и длинный.   -  person deceze♦    schedule 16.06.2016


Ответы (1)


Я бы сказал, что любой элемент, имеющий атрибут типа URI, сможет инициировать HTTP-запрос, а также любой элемент, имеющий атрибут, если сценарий типа может инициировать его через javascript.

Мы могли бы отфильтровать это из этого списка: https://www.w3.org/TR/REC-html40/index/attributes.html

и на основе принятого ответа на этот вопрос: ПОЛНЫЙ список атрибутов тега HTML, которые имеют значение URL?

Это дает вам список с атрибутами типа url (см. мой цитируемый ответ ниже).

Что касается атрибутов типа сценария, которые включают в себя onclick, onkeypress и т. д., что означает, что я полагаю, что у вас останется множество элементов, которые не смогут инициировать HTTP-запрос, если это так.

Цитирую ответ:

Ознакомьтесь со списком HTML-атрибутов W3C, там есть столбец «тип» и просто найдите типы 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>

Это не обязательно простые 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">

Кроме того, атрибут стиля может содержать объявления css с одним или несколькими URL-адресами. Например: <div style="background: url(image.png)">

person Arathi Sreekumar    schedule 16.06.2016