Η ιδιότητα method του HTML <form>

Ορισμός και χρήση

method Η ιδιότητα καθορίζει πώς θα σταλούν τα δεδομένα της φόρμας (τα δεδομένα της φόρμας θα σταλούν στη σελίδα που καθορίζεται από την ιδιότητα action)

Τα δεδομένα της φόρμας μπορούν να αποσταλούν ως μεταβλητές URL (χρησιμοποιώντας method="get") ή ως HTTP POST διαδικασία (χρησιμοποιώντας method="post")

Για το GET:

  • Επιπλέον, προσθέστε τα δεδομένα της φόρμας στο URL σε μορφή ονόματος/τιμής
  • Το URL έχει περιορισμό μήκους (περίπου 3000 χαρακτήρες)
  • Δεν πρέπει να χρησιμοποιείτε GET για να στείλετε ευαίσθητα δεδομένα! (Θα είναι ορατά στο URL)
  • Η υποβολή φόρμας για χρήστες που θέλουν να προσθέσουν το αποτέλεσμα ως σημάδι είναι πολύ χρήσιμη
  • Το GET είναι κατάλληλο για μη ασφαλή δεδομένα, όπως οι ερωτήσεις字符串 του Google.

Περιγραφή του POST:

  • Προσθήκη δεδομένων φόρμας στο σώμα του HTTP αιτήματος (τα δεδομένα δεν εμφανίζονται στην URL).
  • Χωρίς περιορισμό μεγέθους.
  • Οι φόρμες που υποβάλλονται με POST δεν μπορούν να προσφερθούν ως σημειώσεις.

Εξάμηνο

Παράδειγμα 1

Υποβολή φόρμας με τη μέθοδο "get":

<form action="/action_page.php" method="get">
  <label for="fname">Όνομα:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">Επώνυμο:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Υποβολή">
</form>

Προσπάθησε να το δεις από πρώτο χέρι

Παράδειγμα 2

Υποβολή φόρμας με τη μέθοδο "post":

<form action="/action_page.php" method="post">
  <label for="fname">Όνομα:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">Επώνυμο:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Υποβολή">
</form>

Προσπάθησε να το δεις από πρώτο χέρι

Γραμματική

<form method="get|post">

Τιμή ιδιότητας

Τιμή Περιγραφή
get Προεπιλεγμένο. Προσθήκη των δεδομένων της φόρμας ως ζευγάρι όνομα/τιμή στην URL: URL?name=value&name=value.
post Αποστολή των δεδομένων της φόρμας ως HTTP post μετακίνηση

Περιγραφή της ιδιότητας method

Ο περιηγητής χρησιμοποιεί τη μέθοδο που καθορίζεται από την ιδιότητα method για να στείλει τα δεδομένα της φόρμας στον διακομιστή. Υπάρχουν δύο μεθόδους: POST και GET.

Η χρήση της μεθόδου POST περιλαμβάνει δύο βήματα για την αποστολή δεδομένων από τον περιηγητή. Πρώτα, ο περιηγητής επικοινωνεί με τον διακομιστή επεξεργασίας φόρμας που καθορίζεται από την ιδιότητά action, και μετά, στέλνει τα δεδομένα στον διακομιστή με μέθοδο διαμερισμού.

Στο διακομιστή, όταν ξεκινάει η εφαρμογή POST, πρέπει να διαβάζονται οι παράμετροι από μια σημαντική τοποθεσία, και πρέπει να τις декωδικοποιούνται πριν οι εφαρμογές μπορέσουν να χρησιμοποιήσουν αυτές τις τιμές φόρμας. Ο διακομιστής καθορίζει πώς η εφαρμογή πρέπει να λαμβάνει αυτές τις παράμετροι.

Εναλλακτικά, η χρήση της μεθόδου GET, όταν ο περιηγητής δημιουργεί σύνδεση με τον διακομιστή επεξεργασίας φόρμας, στέλνει όλα τα δεδομένα της φόρμας σε μια μεταφορά με ένα βήμα: ο περιηγητής προσθέτει τα δεδομένα απευθείας μετά την URL action της φόρμας. Οι δύο τοποθεσίες διαχωρίζονται με το ερώτημα.

Οι γενικές περιηγητές μπορούν να μεταφέρουν πληροφορίες φόρμας με οποιαδήποτε από αυτές τις μεθόδους, ενώ κάποιες υπηρεσίες αποδέχονται μόνο δεδομένα που παρέχονται από μια από αυτές τις μεθόδους. Μπορείτε να καθορίσετε τη μέθοδο που θα χρησιμοποιηθεί για την επεξεργασία δεδομένων από τον διακομιστή στο atributo method (μέθοδο) της ετικέτας <form>, ώστε να είναι POST ή GET.

POST ή GET?

Αν ο διακομιστής επεξεργασίας φόρμας υποστηρίζει τόσο τη μέθοδο POST όσο και τη μέθοδο GET, τότε ποιλή μέθοδο πρέπει να επιλέξετε; Ακολουθούν μερικές τάσεις σχετικά με αυτό:

  • Αν θέλετε να επιτύχετε την καλύτερη απόδοση μεταφοράς φόρμας, μπορείτε να χρησιμοποιήσετε τη μέθοδο GET για να αποστείλετε μικρές φόρμες με λίγα σύντομα πεδία.
  • Ορισμένοι διακομιστές λειτουργικών συστημάτων περιορίζουν τον αριθμό και τη μήκος των παραμέτρων που μπορούν να μεταδοθούν απευθείας στην εφαρμογή, σε τέτοιες περιπτώσεις, για φόρμες με πολλούς πεδία ή πολύ μεγάλα πεδία κειμένων, πρέπει να χρησιμοποιηθεί η μέθοδος POST για να τις αποστείλετε.
  • Αν δεν έχετε εμπειρία στην ανάπτυξη εφαρμογών επεξεργασίας φόρμας στο διακομιστή, πρέπει να επιλέξετε τη μέθοδο GET. Αν χρησιμοποιήσετε τη μέθοδο POST, πρέπει να κάνετε επιπλέον εργασία για την ανάγνωση και αποκωδικοποίηση του τρόπου, ίσως δεν είναι πολύ δύσκολο, αλλά μπορεί να μην θέλετε να χειριστείτε αυτά τα προβλήματα.
  • Αν η ασφάλεια είναι ένα πρόβλημα, προτείνουμε να χρησιμοποιήσετε τη μέθοδο POST. Η μέθοδος GET τοποθετεί τις παραμέτρους της φόρμας απευθείας στην URL της εφαρμογής, έτσι ώστε οι παρατηρητές του δικτύου μπορούν εύκολα να τα κ捕获 και να τα αποσπάσουν από τα αρχεία 日志 του διακομιστή. Αν οι παραμέτρους περιέχουν ευαίσθητες πληροφορίες όπως ο αριθμός της κάρτας πιστωτικής, μπορεί να κινδυνεύσει η ασφάλεια του χρήστη χωρίς να το γνωρίζει. Οι εφαρμογές POST δεν έχουν κενά ασφαλείας, και τουλάχιστον μπορούν να χρησιμοποιήσουν κρυπτογράφηση όταν μεταφέρουν τις παραμέτρους ως ξεχωριστή συναλλαγή για επεξεργασία από τον διακομιστή.
  • Αν θέλετε να καλέσετε μια εφαρμογή του διακομιστή εκτός της φόρμας και να της μεταφέρετε παραμέτρους, πρέπει να χρησιμοποιήσετε το μέθοδο GET, επειδή αυτή η μέθοδος επιτρέπει να συμπεριληφθούν παραμέτρους όπως η φόρμα ως μέρος της URL. Από την άλλη πλευρά, οι εφαρμογές με μορφή POST επιθυμούν να υπάρχει μια πρόσθετη διαδικασία μεταφοράς από τον περιηγητή μετά την URL, όπου το περιεχόμενο της μεταφοράς δεν πρέπει να είναι μέρος του περιεχομένου της παραδοσιακής ετικέτας <a>.

Καθαρή μετάδοση παραμέτρων

Προηγούμενα consejos μπορούν να θεωρηθούν ως μιας μορφής εξήγηση για την επιλογή αυτού του τρόπου. Ας υποθέσουμε ότι έχετε μια πολύ απλή φόρμα που περιέχει μόνο τις παραμέτρους x και y. Κατά την κωδικοποίηση των τιμών αυτών των στοιχείων, η μορφή τους είναι όπως στο παρακάτω παράδειγμα:

x=28&y=66

Αν η φόρμα χρησιμοποιεί method=GET, τότε η URL που χρησιμοποιείται για να αναφέρεται στην εφαρμογή του διακομιστή θα είναι όπως στο παρακάτω παράδειγμα:

http://www.example.com/example/program?x=28&y=66

Παρά κάθε στιγμή μπορούμε να δημιουργήσουμε μια παραδοσιακή ετικέτα <a>, χρησιμοποιώντας την για να καλέσουμε μια φόρμα με τις απαιτούμενες παραμέτρους, όπως στο παρακάτω παράδειγμα:

<a href="http://www.example.com/example/program?x=28&y=66">

Ο μόνος πρόβλημα είναι ότι το σύμβολο & που χρησιμοποιείται για τη διάχωση των παραμέτρων είναι και ο χαρακτήρας εισαγωγής του χαρακτήρα entity. Αν τοποθετήσετε ένα σύμβολο & στο atributo href του ετικέτας <a>, ο περιηγητής θα αντικαταστήσει τον χαρακτήρα που ακολουθεί με την αντίστοιχη character entity.

Για να αποφύγουμε αυτή την κατάσταση, πρέπει να αντικαταστήσουμε το σύμβολο & με το αντίστοιχο αντικείμενο, δηλαδή με "&" ή "&". Μετά την αντικατάσταση, η παραπάνω αναφορά στο μη φόρμα application server θα είναι ως εξής:

<a href="http://www.example.com/example/program?x=28&y=66">

Επειδή ακόμα δεν μπορεί να χρησιμοποιηθεί το σύμβολο & στο URL και μπορεί να προκαλέσει σύγχυση στο μέλλον, προτείνουμε να ρυθμίσουν οι διακομιστές να αποδέχονται επίσης τη χρήση του τελεστώτος ως διαχωριστικό παραμέτρων. Μπορείτε επίσης να δείτε τα έγγραφα του διακομιστή σας για να μάθετε αν υποστηρίζει αυτή τη λειτουργία.

Υποστήριξη browser

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Υποστήριξη Υποστήριξη Υποστήριξη Υποστήριξη Υποστήριξη