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

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

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

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

Ответ 1

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

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

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

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

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

Цитирование ответа:

Просмотрите список атрибутов HTML W3C, там есть столбец "type" и просто найдите типы 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)">