면책 조항 : 저는 REST 생각 학교에 익숙하지 않아서 내 마음을 감싸려고합니다.
그래서 저는이 페이지 인 Common REST Mistakes를 읽고 있으며 세션과 관련이없는 섹션에서 완전히 당황한 것을 발견했습니다. 이것은 페이지가 말하는 것입니다 :
클라이언트가 "로그인"하거나 "연결을 시작할 필요"가 없어야합니다. 모든 메시지에서 HTTP 인증이 자동으로 수행됩니다. 클라이언트 응용 프로그램은 서비스가 아닌 리소스 소비자입니다. 따라서 로그인 할 것이 없습니다! REST 웹 서비스로 항공편을 예약한다고 가정 해 보겠습니다. 서비스에 대한 "세션"연결을 새로 만들지 않습니다. 대신 "일정 생성자 개체"에 새 일정을 만들도록 요청하십시오. 블랭크를 채우기 시작한 다음 웹의 다른 곳에서 완전히 다른 구성 요소를 가져와 다른 블랭크를 채울 수 있습니다. 세션이 없으므로 클라이언트간에 세션 상태를 마이그레이션하는 데 문제가 없습니다. "세션 선호도"문제도 없습니다
좋아, 모든 메시지에서 HTTP 인증이 자동으로 수행된다는 것을 알지만 어떻게? 모든 요청과 함께 사용자 이름 / 암호가 전송됩니까? 그것은 단지 공격 표면적을 증가시키지 않습니까? 퍼즐의 일부가 빠진 것 같습니다.
예를 들어 /session
GET 요청을 수락하여 요청의 일부로 사용자 이름 / 암호를 전달하고 인증에 성공하면 세션 토큰을 반환 하는 REST 서비스를 갖는 것이 좋지 않습니까? 후속 요청과 함께 전달 되었습니까? REST 관점에서 의미가 있습니까, 아니면 요점이 누락 되었습니까?