2013-03-02 35 views
5

Sono nuovo in questo forum e sto imparando PHP da questa notte.Differenza tra i metodi GET e POST?

Voglio inviare un modulo, ma non so la differenza tra:

<form action="page2.php" method="GET"> 

e

<form action="page2.php" method="POST"> 

Qualcuno mi potrebbe aiutare per favore?

Grazie.

+0

Forse questo potrebbe aiutare: http://www.cs.tut.fi/~jkorpela/forms/methods.html – juanchopx2

+0

@johny G se link precedente non lo fa aiutare, controlla http://www.w3schools.com/tags/ref_httpmethods.asp – Daniel

+0

[differenza tra metodi GET e POST] (http://www.jquery2dotnet.com/2014/03/difference-between-get-and -post-methods.html) – Sender

risposta

26

GET:

  • parametri rimangono nella cronologia del browser, perché sono parte dell'URL
  • possono essere contrassegnate.
  • Il metodo GET non deve essere utilizzato quando si inviano password o altre informazioni sensibili.
  • 7607 dimensioni massime del carattere.
  • Url esempio:? Page2.php categoria = sportiva

POST:

  • I parametri non vengono salvati nella cronologia del browser.
  • Non può essere aggiunto ai segnalibri.
  • metodo POST utilizzato quando si inviano password o altre informazioni sensibili.
  • 8 Mb dimensione massima per il metodo POST. esempio
  • URL: page2.php
+2

si noti che la dimensione massima per il post non è 8MB nessecarily, può essere configurato sul lato server. –

+1

Trovo strano che questa risposta abbia ottenuto così tanti voti, la gente lo troverà e pensa che c'è un limite al POST. Inoltre, non spiega correttamente entrambi i metodi. –

0

Se si utilizza una richiesta GET, i parametri di modulo sono codificati nella URL in quello che viene chiamato una stringa di query. Ad esempio

www.someemailprovider.com/[email protected]&password=xxyz

Una richiesta POST, a differenza di una richiesta GET, passa i parametri di modulo nel corpo della richiesta HTTP, non l'URL.

Inoltre GET è idempotente e POST non è che significa che se si chiama il metodo GET sul server di nulla sarà cambiato sul server, ma se si chiama POST allora assistente sarà cambiato può essere un alcuni dati aggiuntivi verranno aggiunti in alla server, quindi GET è idempotente mentre il POST non lo è.

Nota

La cosa principale da tenere a mente come programmatore è che la definizione di modulo per utilizzare il metodo GET non protegge contro le modifiche che causano. È possibile utilizzare una richiesta GET per fare praticamente la stessa cosa di una query POST. È solo che i browser sono generalmente codificati per aspettarsi che le richieste POST vengano utilizzate per cose che causeranno cambiamenti, come l'ordine o la scrittura in un database, ecc. Le richieste GET devono essere utilizzate per le query pure che non influiscono su nulla sul server.Quindi, si dovrebbe sempre ricordare di non utilizzare le richieste GET per qualsiasi azione che possa causare una modifica sul server, come ordinare un grande schermo tv.

1

Per convenzione HTTP GET viene utilizzato per i moduli di ricerca mentre HTTP POST viene utilizzato per modificare i moduli. Un GET visualizza le sue informazioni nell'URL, visibili pubblicamente, da cui è possibile interrogare le variabili. Un POST non mostrerà le sue informazioni. Non c'è davvero alcuna differenza di sicurezza saggio.

-1

Questi sono entrambi metodi di richiesta HTTP, non PHP esclusiva.

$ _GET viene aggiunto alla fine o URL. vale a dire http://example.org/?foo=bar accesso in PHP con:

$foo = $_GET['foo']; 

o $ foo = $ _REQUEST [ 'foo'];

GET viene utilizzato per informazioni che non ti dispiace vedere le persone e può essere digitato manualmente in collegamenti e URL per ottenere risultati.

$ _POST non è visibile nel tuo URL e generalmente viene utilizzato dopo aver inviato un modulo. accesso in PHP con:

$foo = $_POST['foo']; 

o $ foo = $ _REQUEST [ 'foo'];

Leggi di più riguardo le richieste HTTP in http://www.w3schools.com/tags/ref_httpmethods.asp

Problemi correlati