Tuyên bố miễn trừ trách nhiệm: Tôi mới tham gia vào trường tư tưởng REST và tôi đang cố gắng để bao bọc tâm trí của mình xung quanh nó.
Vì vậy, tôi đang đọc trang này, những lỗi REST phổ biến và tôi thấy tôi hoàn toàn bị bối rối bởi phần về các phiên không liên quan. Đây là những gì trang nói:
Không cần khách hàng "đăng nhập" hoặc "bắt đầu kết nối". Xác thực HTTP được thực hiện tự động trên mỗi tin nhắn. Ứng dụng khách hàng là người tiêu dùng tài nguyên, không phải dịch vụ. Vì vậy, không có gì để đăng nhập! Giả sử bạn đang đặt chuyến bay trên dịch vụ web REST. Bạn không tạo kết nối "phiên" mới cho dịch vụ. Thay vào đó, bạn yêu cầu "đối tượng người tạo hành trình" tạo cho bạn một hành trình mới. Bạn có thể bắt đầu điền vào chỗ trống nhưng sau đó lấy một số thành phần hoàn toàn khác ở nơi khác trên web để điền vào một số khoảng trống khác. Không có phiên nên không có vấn đề di chuyển trạng thái phiên giữa các khách hàng. Cũng không có vấn đề về "mối quan hệ phiên"
Được rồi, tôi nhận được rằng xác thực HTTP được thực hiện tự động trên mỗi tin nhắn - nhưng bằng cách nào? Là tên người dùng / mật khẩu được gửi với mỗi yêu cầu? Không phải điều đó chỉ làm tăng diện tích bề mặt tấn công sao? Tôi cảm thấy như mình đang thiếu một phần của câu đố.
Sẽ rất tệ nếu có một dịch vụ REST, giả sử, /session
chấp nhận yêu cầu GET, trong đó bạn chuyển tên người dùng / mật khẩu như một phần của yêu cầu và trả lại mã thông báo phiên nếu xác thực thành công, có thể sau đó thông qua cùng với các yêu cầu tiếp theo? Điều đó có ý nghĩa từ quan điểm REST hay là thiếu điểm đó?