Ποιοι χαρακτήρες καθιστούν ένα URL άκυρο;

Ποιοι χαρακτήρες καθιστούν ένα URL άκυρο;

Είναι αυτές οι έγκυρες διευθύνσεις URL;

  • example.com/file[/].html
  • http://example.com/file[/].html

Γενικά, τα URI, όπως ορίζονται από το RFC 3986 (βλέπε Ενότητα 2: Χαρακτήρες), μπορούν να περιέχουν οποιονδήποτε από τους ακόλουθους 84 χαρακτήρες:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=

Σημειώστε ότι αυτός ο κατάλογος δεν αναφέρει πού στο URI μπορούν να εμφανιστούν αυτοί οι χαρακτήρες.

Οποιοσδήποτε άλλος χαρακτήρας πρέπει να κωδικοποιηθεί με την κωδικοποίηση ποσοστού (%hh). Κάθε μέρος του URI έχει περαιτέρω περιορισμούς σχετικά με το ποιοι χαρακτήρες πρέπει να αναπαρασταθούν με μια λέξη κωδικοποιημένης με τοις εκατό.

Σχόλια (25)

Όλοι οι έγκυροι χαρακτήρες που μπορούν να χρησιμοποιηθούν σε ένα URI (ένα URL είναι ένας τύπος URI) ορίζονται στο RFC 3986.

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

Αυτός ο σύνδεσμος, HTML URL Encoding Reference, περιέχει έναν κατάλογο των κωδικοποιήσεων για άκυρους χαρακτήρες.

Σχόλια (1)

Δεν είναι πραγματικά μια απάντηση στην ερώτησή σας, αλλά η επικύρωση των url's είναι πραγματικά ένα σοβαρό p.i.t.a. Πιθανόν να είναι καλύτερα να επικυρώσετε το domainname και να αφήσετε το μέρος του ερωτήματος στο url. Αυτή είναι η εμπειρία μου. Θα μπορούσατε επίσης να καταφύγετε στο pinging του url και να δείτε αν αυτό οδηγεί σε έγκυρη απάντηση, αλλά αυτό μπορεί να είναι υπερβολικό για μια τόσο απλή εργασία.

Οι κανονικές εκφράσεις για την ανίχνευση url's είναι άφθονες, google it :)

Σχόλια (2)