Σύντομη εισαγωγή στην κωδικοποίηση URL

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

Κωδικοποίηση μιας διεύθυνσης URL

Ο συνηθέστερα κωδικοποιημένος χαρακτήρας στη συμβολοσειρά URL είναι ο χαρακτήρας . Αυτός ο χαρακτήρας βλέπετε όποτε βλέπετε ένα σύμβολο συν (+) σε μια διεύθυνση URL. Αυτό αντιπροσωπεύει το χαρακτήρα διαστήματος. Το σύμβολο συν λειτουργεί ως ειδικός χαρακτήρας που αντιπροσωπεύει αυτόν το χώρο σε μια διεύθυνση URL. Ο πιο συνηθισμένος τρόπος που θα δείτε αυτό είναι σε έναν σύνδεσμο mailto που περιλαμβάνει ένα θέμα. Αν θέλετε το θέμα να έχει κενά σε αυτό, μπορείτε να τα κωδικοποιήσετε ως πλεονεκτήματα:

mailto: ηλεκτρονικό ταχυδρομείο; θέμα = αυτό + είναι + μου + θέμα

Αυτό το κομμάτι κειμένου κωδικοποίησης θα μεταδώσει ένα θέμα "αυτό είναι το θέμα μου". Ο χαρακτήρας "+" στην κωδικοποίηση θα αντικατασταθεί με ένα πραγματικό όταν εκδοθεί στο πρόγραμμα περιήγησης.

Για να κωδικοποιήσετε μια διεύθυνση URL, απλά αντικαθιστάτε τους ειδικούς χαρακτήρες με τη συμβολοσειρά κωδικοποίησης. Αυτό σχεδόν πάντα θα ξεκινάει με ένα χαρακτήρα%.

Κωδικοποίηση μιας διεύθυνσης URL

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

Οι περισσότερες διευθύνσεις URL χρησιμοποιούν τους απλούς χαρακτήρες που επιτρέπονται πάντα, επομένως δεν απαιτείται καθόλου κωδικοποίηση.

Αν υποβάλλετε δεδομένα σε δέσμες ενεργειών CGI χρησιμοποιώντας τη μέθοδο GET, θα πρέπει να κωδικοποιήσετε τα δεδομένα όπως θα σταλούν μέσω της διεύθυνσης URL. Για παράδειγμα, αν γράφετε ένα σύνδεσμο για την προώθηση μιας ροής RSS , θα πρέπει να κωδικοποιηθεί η διεύθυνση URL σας για να προσθέσετε τη διεύθυνση URL του σεναρίου στην οποία την προωθείτε.

Τι πρέπει να κωδικοποιηθεί;

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

Κωδικοποίηση διευθύνσεων URL δεσμευμένων χαρακτήρων

Χαρακτήρας Σκοπός στη διεύθυνση URL Κωδικοποίηση
: Ξεχωριστό πρωτόκολλο (http) από τη διεύθυνση % 3B
/ / Ξεχωριστός τομέας και καταλόγους % 2F
# # Ξεχωριστές άγκυρες % 23
; Ξεχωριστή συμβολοσειρά ερωτήματος % 3F
& & Ξεχωριστά στοιχεία ερωτήματος % 24
@ Ξεχωρίστε το όνομα χρήστη και τον κωδικό πρόσβασης από τον τομέα % 40
% Υποδεικνύει κωδικοποιημένο χαρακτήρα % 25
+ Υποδεικνύει ένα κενό % 2B
Δεν συνιστάται σε διευθύνσεις URL % 20 ή +

Σημειώστε ότι αυτά τα κωδικοποιημένα παραδείγματα είναι διαφορετικά από αυτό που βρίσκετε με ειδικούς χαρακτήρες HTML . Για παράδειγμα, εάν πρέπει να κωδικοποιήσετε μια διεύθυνση URL με χαρακτήρα ampersand (&), θα χρησιμοποιήσετε το% 24, το οποίο εμφανίζεται στον παραπάνω πίνακα. Αν γράφετε HTML και θέλετε να προσθέσετε ένα ampersand στο κείμενο, δεν θα μπορούσατε να χρησιμοποιήσετε το% 24. Αντ 'αυτού, θα χρησιμοποιούσατε είτε "& amp;"; ή "& # 38;", και οι δύο από τις οποίες θα γράψουν το & στη σελίδα HTML κατά την απόδοση. Αυτό μπορεί να φαίνεται να προκαλεί σύγχυση, αλλά βασικά είναι η διαφορά μεταξύ του κειμένου που εμφανίζεται στην ίδια τη σελίδα, η οποία είναι μέρος του κώδικα HTML, και της συμβολοσειράς URL, η οποία είναι ξεχωριστή οντότητα και επομένως υπόκειται σε διαφορετικούς κανόνες.

Το γεγονός ότι ο χαρακτήρας "&", καθώς και πολλοί άλλοι χαρακτήρες, μπορούν να εμφανιστούν σε καθένα από αυτά, δεν θα σας ενοχλούν στις διαφορές μεταξύ των δύο.

Αρχικό άρθρο από την Jennifer Krynin. Επεξεργασμένο από τον Jeremy Girard.