Có thể sử dụng các ký tự dấu câu khác nhau trong đường dẫn URL HTTP không khôn ngoan? Tôi đang trong quá trình xác định URL tài nguyên cho API. Các URL tài nguyên này sẽ phải được truy cập, lưu trữ và truyền bởi nhiều khách hàng và phần mềm trung gian, vì vậy điều quan trọng là chúng không chứa các ký tự có khả năng gây ra sự cố.Thực tiễn tốt nhất cho các dấu phân cách trong đường dẫn URL HTTP
RFC 3986, section 2.2. "Reserved Characters" quy định cụ thể các ký tự sau như tiểu delims: $ & '() * +,; =
Are bất kỳ trong số này bất hợp pháp để sử dụng tùy ý trong đường dẫn URL trong chương trình HTTP!?
Ngay cả khi chúng là hợp pháp theo các tiêu chuẩn, bất kỳ điều nào trong số này đều có khả năng gây ra các sự cố tương thích trong thế giới thực do phần mềm không tuân thủ không?
Có bất kỳ thông tin chi tiết phụ cụ thể nào mà trước đó bạn đã sử dụng mà không gặp sự cố trong API được triển khai rộng rãi hay không (điều này sẽ cung cấp bằng chứng cho thấy bạn sử dụng an toàn)?
Động lực là chúng ta cần phải phân định cặp khóa-giá trị không có ngữ nghĩa phân cấp. Chúng tôi đang xem xét thực hiện điều này: http://doriantaylor.com/policy/http-url-path-parameter-syntax. Tuy nhiên, nếu điều này có khả năng là một vấn đề, chúng tôi sẽ chỉ làm http://example.com/key1/value1/key2/value2
nhờ
Tôi sẽ đi với lược đồ Dorian Taylor cho đến khi một cái gì đó bị hỏng, và sau đó thêm '/ khóa/giá trị/khóa/giá trị' dưới dạng _alternative_ nhưng giữ cái cũ làm việc để tương thích. – zwol