I metodi PUT, DELETE, HEAD, ecc sono disponibili nella maggior parte dei browser Web?

2022-05-31 21:30:21

Ho visto un paio di domande qui intorno come Come eseguire il debug dei servizi RESTful , che cita:

Purtroppo lo stesso browser non mi consentirà di testare HTTP PUT, DELETE e, in una certa misura, anche HTTP POST.

Ho anche sentito che i browser supportano solo GET e POST, da altre fonti come:

Tuttavia, alcuni rapidi test in Firefox mostrano che l'invio di richieste PUT e DELETE funziona come previsto: }^{ viene completato correttamente e la richiesta viene visualizzata nei registri del server con il metodo corretto. C'è qualche aspetto che mi sfugge, come la compatibilità cross-browser o limitazioni non ovvie?

- John Millikin

Source
Risposta


628
  • No. La specifica HTML 5 menziona:< /p>

    Gli attributi del metodo e del contenuto del metodo sono attributi enumerati con le seguenti parole chiave e stati:

    La parola chiave get, mappata allo stato GET, che indica l'HTTP GET metodo. Il metodo GET dovrebbe solo richiedere e recuperare dati e non dovrebbe avere altri effetti.

    La parola chiave post, che corrisponde allo stato POST, che indica il metodo HTTP POST. Il metodo POST lo richiede il server accetta che i dati del modulo inviato vengano elaborati, il che potrebbe comporta l'aggiunta di un elemento a un database, la creazione di un nuovo web risorsa della pagina, l'aggiornamento della pagina esistente o tutti i risultati menzionati.

    La parola chiave dialogo, che corrisponde alla finestra di dialogo di stato, a indicarlo l'invio del modulo ha lo scopo di chiudere la finestra di dialogo in cui il il modulo si trova, se presente, e altrimenti non si presenta.

    Il valore predefinito non valido per questi attributi è lo stato GET

    Cioè I moduli HTML supportano solo GET e POST come metodi di richiesta HTTP. Una soluzione alternativa a questo è di eseguire il tunneling di altri metodi tramite POST utilizzando un campo modulo nascosto che viene letto dal server e la richiesta inviata di conseguenza.

    Tuttavia, GET, POST, PUT e DELETE sono supportati da le implementazioni di XMLHttpRequest (es. chiamate AJAX) in tutti i principali browser web (IE, Firefox, Safari, Chrome, Opera).