Những ký tự nào được phép trong chuỗi truy vấn URL?Chuỗi truy vấn URL hợp lệ là gì?
Chuỗi truy vấn có phải tuân theo định dạng cụ thể không?
Những ký tự nào được phép trong chuỗi truy vấn URL?Chuỗi truy vấn URL hợp lệ là gì?
Chuỗi truy vấn có phải tuân theo định dạng cụ thể không?
mỗi http://tools.ietf.org/html/rfc3986
Trong phần 2.2 reserved nhân vật, các nhân vật sau đây được liệt kê:
reserved = gen-delims/tiểu delims
gen-delims = “:”/“/”/“? ”/“ # ”/“ [”/“] ”/“ @ ”
sub-delims =“! ”/“ $ ”/“ & ”/“ '”/“ (”/ “)”/“*”/“+”/“”/“;” /“=”
Các spec sau đó nói:
Nếu dữ liệu cho một thành phần URI sẽ mâu thuẫn với mục đích ký tự dành riêng như là một dấu phân tách, khi đó dữ liệu xung đột phải được mã hóa phần trăm trước khi URI được tạo.
Tiếp theo, trong mục 2.3 Nhân vật Không Giới Hạn, sau đây được liệt kê:
“”ưa thổ lộ = ALPHA/DIGIT/“-”// “_”/“~”
[RFC 3986 - ** Phần 3.4 **] (http: //tools.ietf. org/html/rfc3986 # page-23) mô tả cụ thể chuỗi truy vấn và đáng chú ý bao gồm các phân đoạn phụ và một số ít người khác. Tóm lại: 'A'-'Z',' a'-'z', '0'-'9',' -', '.',' _', '~', '!', '$' , '&', ''', '(', ')', '*', '+', ',', ';', '=', ':', '@', '/', ' ? ' – MrWhite
Wikipedia có câu trả lời của bạn: http://en.wikipedia.org/wiki/Query_string
"URL Encoding: một số ký tự không thể là một phần của một URL (ví dụ, không gian) và một số ký tự khác có ý nghĩa đặc biệt trong một URL: ví dụ, ký tự # có thể được sử dụng để chỉ định thêm một phần con (hoặc đoạn) của một tài liệu; ký tự = được sử dụng để tách một tên khỏi một giá trị. Chuỗi truy vấn có thể cần được chuyển đổi để đáp ứng các ràng buộc này. Điều này có thể được thực hiện bằng cách sử dụng lược đồ được gọi là mã hóa URL.
Đặc biệt, mã hóa các chuỗi truy vấn sử dụng các quy tắc sau: ' '
T ông octet tương ứng với ký tự dấu ngã ("~") thường được mã hóa là "% 7E" bởi các triển khai xử lý URI cũ hơn; "% 7E" có thể được thay thế bằng "~" mà không thay đổi cách diễn dịch của nó. Mã hóa của SPACE là '+' và việc chọn các ký tự "as-is" phân biệt mã hóa này với RFC 1738. "
Về định dạng, chuỗi truy vấn là cặp giá trị tên. URL.Mỗi cặp giá trị tên được phân tách bằng dấu và (&) trong khi tên (khóa) và giá trị được phân tách bằng dấu bằng (=). ví dụ. http://domain.com?key=value&secondkey=secondvalue
Dưới Cấu trúc trong tài liệu tham khảo Wikipedia tôi cung cấp:
Bạn có thể cung cấp trích dẫn cho đoạn cuối cùng không? –
Tôi đã thêm đoạn đó dựa trên trải nghiệm cá nhân nhưng tôi đã cập nhật và thêm nhiều thông tin hơn mà tôi có thể tìm thấy để sao lưu nó. Khi làm như vậy, tôi nhận thấy rằng các khóa-giá trị không chỉ được phân tách bằng ký hiệu và có thể là dấu chấm phẩy mặc dù trước đây tôi chưa bao giờ thấy nó. Ngoài ra, dấu chấm hỏi không phải là một phần của QS mà là một dấu phân tách. – cbillowes
Trong văn bản của câu trả lời: "mỗi cặp giá trị tên được bắt đầu bằng dấu" và từ "(" có tiền tố ") là gây hiểu lầm. Xa hơn, có những cặp "... được tách biệt ...". – laune
Liên kết này có các giá trị câu trả lời và định dạng bạn cần.
https://perishablepress.com/url-character-codes/
Để tiện cho bạn, đây là danh sách:
< %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
Lưu ý rằng [câu trả lời chỉ có liên kết] (http://meta.stackoverflow.com/tags/link-only-answers/info) không được khuyến khích, các câu trả lời SO phải là điểm cuối của việc tìm kiếm giải pháp (so với nhưng một điểm dừng khác của tài liệu tham khảo, mà có xu hướng để có được cũ theo thời gian). Vui lòng xem xét thêm bản tóm tắt độc lập tại đây, giữ liên kết dưới dạng tham chiếu. – kleopatra
Bất cứ điều gì khác hơn là những nhu cầu đó phải được chạy thoát được cho phép trong một URL, xem những gì cần phải được thoát trong câu hỏi này: http: //stackoverflow.com/questions/2322764/what-characters-must-be-escaped-in-an-http-query-string –