Jakie znaki są dozwolone w ciągu zapytania adresu URL?Co to jest poprawny ciąg kwerendy adresu URL?
Czy ciągi zapytań muszą być zgodne z określonym formatem?
Jakie znaki są dozwolone w ciągu zapytania adresu URL?Co to jest poprawny ciąg kwerendy adresu URL?
Czy ciągi zapytań muszą być zgodne z określonym formatem?
Per http://tools.ietf.org/html/rfc3986
w rozdziale 2.2 zastrzeżone znaki następujące znaki są wymienione:
zastrzeżone = GEN-delims/sub-delims
GEN-delims = „”/„/"/"? "/" # "/" ["/"] "/" @ "
sub-delims ="! "/" $ "/" & "/" ""/"("/")"/"*"/„+”/„”/„” /„=”
Spec potem mówi:
Jeżeli dane dla składnika URI byłoby sprzeczne z zarezerwowanego bohatera celu jako separatora, następnie dane będące w konflikcie muszą być zakodowane w procentach przed utworzeniem URI.
Następnie w sekcji 2.3 niezarezerwowany znaków, po wymieniono:
„”.nieograniczony = alfa/CYFRA/„-”// „_”/„~”
[RFC 3986 - ** Rozdział 3.4 **] (http: //tools.ietf. org/html/rfc3986 # strona 23) w szczególności opisuje ciąg zapytania i w szczególności obejmuje sub-delims i garść innych. Podsumowując: 'A' -'Z',' a' -'z', '0' -'9',' -', '.',' _', '~', '!', '$' , '&', '' ',' (',') ',' * ',' + ',', ','; ',' = ',': ',' @ ','/',' ? ' – MrWhite
Wikipedia ma swoją odpowiedź: http://en.wikipedia.org/wiki/Query_string
"URL Kodowanie: Niektóre znaki nie mogą być częścią adresu URL (na przykład przestrzeń) i niektóre inne znaki mają specjalne znaczenie w adresie URL: na przykład znak # może być użyty do dalszego określenia podsekcji (lub fragmentu) dokumentu; znak = służy do oddzielenia nazwy od wartości. Ciąg zapytania może wymagać przekonwertowania, aby spełnić te ograniczenia. Można to zrobić za pomocą schematu znanego jako kodowanie URL.
W szczególności kodowania ciąg kwerendy używa następujących zasad: ' '
T on oktet odpowiadający znakowi tyldy ("~") jest często kodowany jako "% 7E" przez starsze implementacje przetwarzania URI; "% 7E" można zastąpić przez "~" bez zmiany jego interpretacji. Kodowanie spacji jako "+" i wybór znaków "jak jest" odróżnia to kodowanie od RFC 1738. "
Jeśli chodzi o format, ciągi zapytań są parami wartości nazw. URL.Każda para wartości nazw jest oddzielona znakiem ampersand (&), a nazwa (klucz) i wartość są oddzielone znakiem równości (=). na przykład. http://domain.com?key=value&secondkey=secondvalue
Pod Struktura w odniesieniu Wikipedia ja stanowił:
Czy możesz podać cytat z ostatniego akapitu? –
Dodałem ten akapit na podstawie osobistych doświadczeń, ale zaktualizowałem i dodałem więcej informacji, które mogłem znaleźć, aby go utworzyć. W ten sposób zauważyłem, że pary klucz-wartość nie tylko są oddzielone znakiem ampersand, ale mogą być średnikiem, chociaż nigdy wcześniej nie natrafiłem na nie. Ponadto znak zapytania nie jest częścią QS, ale jest raczej separatorem. – cbillowes
W tekście odpowiedzi: "każda para wartości nazw jest poprzedzana znakiem ampersand" słowo ("prefiksowane") wprowadza w błąd. Dalej w dół, jest poprawne "... pary są oddzielone ...". – laune
Ten link ma odpowiedź i sformatowane wartości, których potrzebujesz.
https://perishablepress.com/url-character-codes/
dla wygody, jest to lista:
< %3C
> %3E
# %23
% %25
{ %7B
} %7D
| %7C
\ %5C
^ %5E
~ %7E
[ %5B
] %5D
` %60
; %3B
/ %2F
? %3F
: %3A
@ %40
= %3D
& %26
$ %24
+ %2B
" %22
space %20
Należy pamiętać, że [odpowiedzi dotyczące tylko łącza] (http://meta.stackoverflow.com/tags/link-only-answers/info) są odradzane, odpowiedzi w formacie SO powinny być punktem końcowym wyszukiwania rozwiązania (vs. jeszcze jeden przystanek referencji, które z czasem zanikają). Proszę rozważyć dodanie samodzielnego streszczenia tutaj, zachowując odnośnik jako odniesienie. – kleopatra
coś innego niż te potrzeby być ocalałem są dozwolone w adresie URL, zobaczyć, co trzeba uciec w tej kwestii: http: //stackoverflow.com/questions/2322764/what-characters-must-be-escaped-in-an-http-query-string –