Tôi cần gọi quy trình không yêu cầu bất kỳ đầu vào nào từ người dùng, chỉ cần kích hoạt. Tôi dự định sử dụng POST/uri mà không có cơ thể để kích hoạt quá trình. Tôi muốn biết nếu điều này được coi là xấu từ cả hai quan điểm HTTP và REST?Có được coi là thực hành không tốt để thực hiện HTTP POST không có nội dung thực thể không?
Trả lời
Tôi đã hỏi this question về nhóm làm việc HTTP IETF cách đây vài tháng. Câu trả lời ngắn gọn là, có nó là OK, nhưng tôi đề nghị đọc các chủ đề để biết thêm chi tiết.
Sử dụng POST thay vì GET là hoàn toàn hợp lý, vì nó cũng chỉ thị cho máy chủ (và cổng trên đường đi) không trả về phản hồi được lưu trong bộ nhớ cache.
+1 Hmm tốt để biết. – Ben
Nếu bạn sử dụng POST/uri mà không có phần thân, nó giống như sử dụng hàm không tham số .e.g int post (void); do đó, nó là hợp lý để có chức năng cho lớp tài nguyên của bạn mà có thể thay đổi trạng thái của một đối tượng mà không cần có một đối số. Nếu bạn xem xét để thực hiện các chức năng cảm ứng Unix cho một URI, nó không phải là sự lựa chọn tốt?
Chạm/ngón tay là một minh họa sách giáo khoa về hành động không phải là độc quyền vốn ít nội dung. –
POST hoàn toàn OK. Trong sự khác biệt của GET với POST bạn đang thay đổi trạng thái của hệ thống (rất có thể kích hoạt của bạn là "làm" một cái gì đó và thay đổi dữ liệu).
Tôi đã sử dụng POST chưa có trọng tải và "cảm thấy" OK. Một điều bạn nên làm khi sử dụng POST mà không cần tải trọng: Vượt qua tiêu đề Content-Length: 0
. Tôi nhớ vấn đề với một số proxy khi tôi api-client không vượt qua nó.
- 1. Liệu iframe được coi là 'thực hành không tốt'?
- 2. Có sử dụng mapM/sequence được coi là thực hành tốt không?
- 3. Được đánh máy là kiểu con trỏ được coi là thực hành không tốt?
- 4. Có thể thực hiện đẩy HTTP phía máy khách không?
- 5. Xuất HTML bằng tiếng vọng được coi là thực hành không tốt trong PHP?
- 6. Có thể thực hiện yêu cầu POST trong Flask không?
- 7. Thực hành tốt nhất khi không thực hiện IValueConvert.ConvertBack
- 8. Có phải chỉ định tên ivar để @ psychheshesize được coi là dư thừa hoặc thực hành tốt không?
- 9. Có được coi là thực hành tốt để lưu trữ mật khẩu trong kho lưu trữ Github riêng tư không?
- 10. Ruby: Có thể net/http thực hiện yêu cầu GET và POST cùng một lúc không?
- 11. Việc sử dụng các thuộc tính được thiết lập của C# có được coi là thực hành tốt không?
- 12. Thực hành tốt về REPLACE INTO có tốt không?
- 13. Thanh trượt nội dung JQuery - thực hành tốt nhất?
- 14. XemMô hình thực hiện trong ASP.NET MVC - Mã này có thực hành tốt nhất không?
- 15. Có thực hành tốt để ẩn thông tin máy chủ web trong tiêu đề HTTP không?
- 16. Thực hiện yêu cầu HTTP POST
- 17. Thực hành tốt có sử dụng cụm từ thông dụng để xác thực đầu vào không?
- 18. là nó được coi là thực hành tốt để có điều kiện trong các tập tin tiêu đề công cộng?
- 19. Có sử dụng thực hành tốt cfsqltype không?
- 20. Có phải "ném ngoại lệ" thực hành không tốt?
- 21. Làm cách nào để bạn biết liệu URL nội dung có thực sự trỏ đến nội dung hiện tại không?
- 22. WSDL - không có đầu vào - thực hành tốt nhất
- 23. Có thể xác thực qua HTTP qua IIS được mã hóa (không có SSL) không?
- 24. AngularJS có thực sự là MVC không?
- 25. Có sử dụng dấu ngắt có ghi là một thực hành tốt trong Java không?
- 26. Khởi tạo tĩnh có thực hành lập trình tốt không?
- 27. In Flex - Có thể thực hiện được không?
- 28. Điều gì được coi là thực hành tốt cho việc viết mã trong các tình huống "thế giới thực"?
- 29. Cách tốt nhất để tạo lớp không thể thực hiện được là gì?
- 30. Có thể thực hiện toán học bên trong CSS không?
Cảm ơn mọi người đã đề xuất của bạn. Mặc dù mọi người đều đưa ra đề xuất tương tự, tức là POST có nội dung bằng không, tôi chọn câu trả lời của Darrel là chính xác do liên kết đến thảo luận IETF. Cuộc thảo luận làm rõ rất nhiều. –