Quale dei seguenti è vero quando la creazione di interfacce che alterano i dati sul server?

StackOverflow https://stackoverflow.com/questions/1127702

  •  13-09-2019
  •  | 
  •  

Domanda

Ho appena finito un test Brainbench e per la vita della mia non riesco a capire la risposta a questa domanda ... Io non credo che ci sia una risposta corretta.

richieste Scelta 1 PUT devono essere utilizzati; essi non sono ripetibili.

richieste Scelta 2 HEAD devono essere utilizzati; riducono il traffico di dati.

richieste Scelta 3 GET devono essere utilizzati; sono più facili da inviare ad altri utenti.

richieste Scelta 4 POST devono essere utilizzati dal momento che le richieste GET potrebbero essere inavvertitamente inviati tramite un motore di ricerca

Scelta 5 DELETE richieste devono essere utilizzati; sono stati progettati per questo utilizzo.

È stato utile?

Soluzione

Non sono positivo su questo, ma sono abbastanza sicuro che la sua scelta 4.

Diciamo che avere un collegamento che va a /Delete.aspx?id=4, e Google decide di eseguire la scansione quel link. Supponendo che non c'è nessun controlli di autorizzazione, Google può spazzare via i record.

Edit: Ecco un discussione SO sul perché POST href="https://stackoverflow.com/questions/1100366/get-vs-post-does-it-really-really-matter"> per le azioni che alterano i dati.

Altri suggerimenti

PUT, POST e DELETE possono tutti essere usati. DELETE dati cancella che ricade nell'ambito "alterazione". PUT sostituisce. POST può fare nulla.

L'IMHO questione non è ben formulata, ma come le risposte 1 e 5 contengono mis-informazione, 4 probabilmente dovrebbe essere la risposta giusta.

Se PUT sostituisce il contenuto, allora è idempotente, e quindi ripetibile, e quindi 1 è sbagliato, se per nessuna ragione la seconda metà della frase. TESTA sarebbe privo di senso in questo caso, quindi è fuori. GET è un male per i motivi sopra indicati (cingoli bombardamento nucleare contenuti, ecc) - GET mezzi GET. Si doens't significava GET (oh, e avere un po 'effetti collaterali) POST è la risposta giusta. DELETE si intende per ... l'eliminazione di risorse. Che non è quello che volete.

scroll top