Có bất kỳ tiêu chuẩn nào để sử dụng tiêu đề HTTP cho thành công đăng nhập/phản hồi không thành công không?Các tiêu đề HTTP thích hợp cho thành công đăng nhập/phản hồi không thành công?
Trả lời
Tiêu đề mà máy chủ gửi là mã trạng thái bị từ chối 200 OK hoặc 401 khi thành công hay thất bại.
Xem http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Mục 10.4.2 401 Không được phép cho việc này.
Khi gửi 401, máy chủ phải gửi một
WWW-Authenticate = "WWW-Authenticate" ":" 1 # thách thức
để chỉ ra những gì chương trình nên được sử dụng để xác thực.
Xem http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html Mục 14.47 WWW-Authenticate cho việc này.
Chỉ có HTTP/1.0 401 Unauthorized
.
Nhưng gần đây tôi đã phát triển "mẫu xác thực" này: Lần đầu tiên bạn truy cập trang bạn nhận được 401
và màn hình đăng nhập. Ngay sau khi bạn nhập dữ liệu đăng nhập chính xác, bạn nhận được 200
. Khi phiên của bạn hết hạn hoặc bạn nhấp vào đăng xuất, bạn sẽ nhận được 401
và màn hình đăng nhập lại. Màn hình đăng nhập luôn là 401
, mọi trang khác 200
.
Tùy thuộc vào ý nghĩa của bạn bằng cách 'đăng nhập' và có lẽ cả cách đăng nhập/đăng xuất/ủy quyền được xử lý bởi máy chủ.
Thông thường, cụm từ 'để đăng nhập' có liên quan đến phiên. Một 'đăng nhập', làm những gì cần phải được thực hiện, và sau đó 'đăng xuất'. Máy chủ lưu trữ thông tin phiên và gửi ID phiên trong một cooki cho máy khách, người sau đó gửi cookie trở lại để thông báo cho máy chủ biết rằng phiên đang diễn ra. Trong các biến phiên có thể thay đổi và trạng thái của chúng liên tục giữa các cuộc gọi từ máy khách.
Trực giác, nghe có vẻ tự nhiên là phải có loại phản hồi 'Được ủy quyền' khi bạn bắt đầu phiên, cùng với câu trả lời 'Không được phép (401)'.
Tuy nhiên, HTTP là giao thức không nhà nước. Nó không biết về các tiểu bang, chỉ về việc liệu yêu cầu có được phép hay không. Đó là lý do tại sao có trạng thái 401 nhưng không có mã trạng thái 'được ủy quyền' cụ thể (vì nếu yêu cầu không trái phép, nó được ủy quyền ngầm).
Để có cảm giác làm việc trên một phiên ở cấp HTTP (không sử dụng công trình như session_start của PHP()) thông tin đăng nhập ủy quyền phải được gửi cùng với mọi yêu cầu. Đây là những gì xảy ra khi người ta sử dụng tập tin .htaccess để bảo vệ một thư mục, ví dụ. Sau khi cung cấp cho hộp thoại mật khẩu tên người dùng và mật khẩu, chúng được gửi sau mỗi lần có quyền truy cập trong phạm vi ủy quyền. Có một ảo tưởng về một 'phiên' đang diễn ra nhưng trên thực tế tên người dùng và mật khẩu được gửi theo mọi yêu cầu.
- 1. Mã phản hồi HTTP cho hoạt động Xóa HTTP không thành công là gì?
- 2. Git: Yêu cầu HTTP không thành công
- 3. Biên soạn với NDK cho lỗi cho các tập tin tiêu đề bao gồm thành công
- 4. Đăng nhập không thành công cho người dùng 'DOMAIN \ MACHINENAME $'
- 5. Yêu cầu FBSessionNewPublishPermissions không thành công trước khi phản hồi
- 6. Phục hồi từ một lần rebase không thành công
- 7. Có ai sử dụng thành công COM không đăng ký với các thành phần .NET không?
- 8. Kết hợp regex perl không thành công
- 9. Công cụ để xem tiêu đề phản hồi
- 10. đăng nhập xmpp không thành công sau khi xác thực
- 11. RPC không thành công; kết quả = 28, mã HTTP = 0
- 12. Các trường hợp Xml serialization không thành công trong .NET
- 13. Không thích không thành công với các thay đổi đột phá tháng 2 năm 2013
- 14. FileUtils.copyFile không thành công cho các tệp lớn
- 15. 'Xuất bản không thành công' nhưng xây dựng thành công?
- 16. PHP session_start không thành công
- 17. render_to_response với tiêu đề phản hồi HTTP
- 18. Thiết lập: Đăng nhập không thành công, cách gỡ lỗi?
- 19. "Tiêu đề HTTP thô" là gì? Sự khác biệt giữa "tiêu đề HTTP" và "tiêu đề HTTP thô" là gì?
- 20. dynamic_cast không thành công
- 21. xác thực đăng nhập đám mây không thành công?
- 22. Đăng nhập quản lý kết nối SSIS không thành công
- 23. Trường hợp thử nghiệm Spring JUnit không thành công
- 24. jQuery Ajax POST không thành công
- 25. Yêu cầu HTTP không thành công! HTTP/1.1 505 Phiên bản HTTP Không được hỗ trợ lỗi
- 26. Tiêu đề HTTP Pragma: Công khai nghĩa là gì?
- 27. Yêu cầu HTTP không thành công! Dịch vụ HTTP/1.1 503 Tạm thời không khả dụng
- 28. Mỗi yêu cầu HTTP thành công có luôn trả lại mã trạng thái 200 không?
- 29. XPages Loại Không thành công khi đang tải đề xuất
- 30. Kiểm tra xem việc gửi email có thành công/không thành công trong CakePHP không?
Tôi đang cung cấp cho bạn một câu hỏi tuyệt vời, tuyệt vời, cũng muốn biết câu trả lời. –