Il post è intercambiabile?

-4

So che ci sono alcune differenze tra GET e POST , come descritto in questo post su StackOverflow . Ma quello che non riesco a capire è che sono intercambiabili , supponendo che tu cambi il tuo codice di conseguenza?

Ad esempio, potresti utilizzare POST per richiedere il contenuto HTML e visualizzarlo nel browser? Non mi interessa se questa sia o meno la migliore pratica, solo se è possibile.

Aggiorna

Devo sottolineare che POST e GET sono due modi diversi di inviare richieste HTTP. Ne sono consapevole e sono consapevole che fa fa la differenza che usi. Soprattutto quando si tratta di sicurezza, è importante conoscere la differenza.

Ciò che sostanzialmente volevo sapere era, se fosse possibile (da un punto di vista tecnico) utilizzare POST invece di GET e viceversa. Dalle risposte in questo post, è chiaro che è possibile utilizzare entrambi. Ciò non significa che non importa quale si utilizza.

    
posta Noceo 18.09.2017 - 16:06
fonte

4 risposte

5

Sì, dato che hai il controllo sulla gestione di questo da parte del server. Ho lavorato con un codice Java server che ha trattato entrambi i metodi come equivalenti. In realtà, l'operazione è in realtà solo una stringa che viene passata. Se vuoi, puoi fare un GOST e PET . Queste sono convenzioni.

Anche se non c'è nulla su HTTP che impedisce questo tipo di cose, la maggior parte delle API e / o dei browser non la supportano.

Dici che non ti importa se sia una buona idea o no, ma penso che sia importante sapere che mescolare questi elementi può creare pericolosi difetti di sicurezza. È fondamentale non utilizzare GET per tutto ciò che non è sicuro. In questo modo puoi aprirti a una vulnerabilità molto facilmente sfruttata. In particolare, se disponi di un GET che, ad esempio, registra un utente, inserendo semplicemente l'URL nell'attributo src di un tag img, si verificherà che si verifichi quando viene caricata una pagina contenente quell'immagine. Non è necessario essere un'immagine reale per farlo. È una pessima idea andare controcorrente con questo genere di cose. È come guidare dalla parte sbagliata della strada sulla superstrada. Non ne uscirà nulla di buono.

    
risposta data 18.09.2017 - 17:35
fonte
2

Se guardi la risposta accettata sulla stessa domanda e lo scopo dietro di loro, no non sono intercambiabili. Infatti, le tue librerie JavaScript non ti permetteranno di inviare JSON o XML direttamente a un endpoint di URL GET.

L'intento dietro GET è quello di recuperare i dati. Puoi usarlo per consentire la ricerca, ecc. Tuttavia, l'intento dietro al POST è quello di inviare dati dal client al server.

Per rispondere in modo specifico alla domanda se gli URL POST possono restituire risultati, la risposta è sì. Non esistono limitazioni tecniche che impediscano a una chiamata POST di recuperare informazioni da un server. Nel bene o nel male, molti database di documenti con un linguaggio di query JSON incorporato si comportano esattamente in questo modo.

Ora esistono ulteriori limiti tecnici basati sulle configurazioni del firewall di cui potresti essere a conoscenza o meno, oltre a limitazioni nel livello dell'API JavaScript.

  • Alcuni firewall aziendali che sono molto preoccupati per le persone che inviano accidentalmente i segreti aziendali possono disattivare le richieste POST a livello di firewall. Solitamente lascia GET aperto, motivo per cui non è una cattiva idea avere caselle di ricerca accessibili tramite GET. Certo, questo è un piccolo gruppo di utenti nel grande schema di cose.
  • Le librerie JavaScript non ti consentono di ottenere con un payload JSON o XML. Mentre "tecnicamente" possibile per le comunicazioni machine-to-machine, la maggioranza (se non tutti) degli implementatori di browser non ti consente di farlo.
risposta data 18.09.2017 - 16:18
fonte
1

Sì, ma ... GET ha limitazioni su POST . Poiché tutti i dati sono codificati nell'URL, ...

  • si applicano i limiti di lunghezza URL specifici per browser e server Web (in genere circa da 1 a 4 KB).
  • Il caricamento di file ( <input type="file"> ) non è possibile.
  • Tutti i contenuti, incluse le password, sono visibili in testo normale nella barra degli indirizzi e nella cronologia del browser.
  • URL e quindi è probabile che i dati vengano registrati sui server Web.
  • La risposta viene gestita come il contenuto di tale URL e può essere memorizzata nella cache (ad esempio, potrebbe non essere aggiornata).
  • L'URL può essere interrogato più volte (come una volta dal sistema operativo per determinare il tipo di contenuto per avviare l'applicazione corrispondente, e l'applicazione può scaricare di nuovo l'URL). Se l'URL provoca un'azione sul tuo sistema, l'azione verrà ripetuta.
  • Lo stesso per i clic sui pulsanti di ricarica e back precedenti.
  • Il set di caratteri non è esplicito in un URL. Ciò potrebbe causare ulteriori problemi.
risposta data 19.09.2017 - 10:15
fonte
-2

Non a mia conoscenza, no.

Una richiesta GET recupera le informazioni da un sito Web e le visualizza nel formato specificato. Questo è utile per recuperare i dati MI dai siti Web.

Una richiesta POST pubblica i dati sul sito web. Un uso comune di POST è quello di automatizzare la creazione di account e simili.

Spero che questo aiuti:)

    
risposta data 18.09.2017 - 16:11
fonte

Leggi altre domande sui tag