2012-01-03 2 views
0

REST 클라이언트는 일반적으로 브라우저에서 PHP 세션 ID 쿠키처럼 동작 할 때마다 인증 매개 변수를 전송합니다. 하지만 REST 클라이언트는 브라우저가 없으므로 서버 측 코드에서 왜 인증 매개 변수를 사용하지 않을까요?세션을 사용하여 REST API를 구현하는 것이 좋습니까?

session_id($_GET('authentication_code')); 

좋은 방법입니까?

+0

난 당신이 적어도 확인하고 "비 저장"을 준수하지 않는 방식으로 PHP 세션을 사용하여 콘텐츠 –

+4

을 처리해야한다고 생각 [제약] (http://en.wikipedia.org/wiki/Representational_state_transfer#Constraints) REST에 대한 간단한 대답은 "아니요"입니다. – DaveRandom

+0

"멱등 원"이 의미하는 바를 찾으십시오. REST 서비스는 해당 단어를 사용하여 설명해야합니다. – duffymo

답변

3

대답은 '아니오'입니다. S RESTstateless이며 서버에 저장할 수 없습니다.

+12

REST는 Representational State Transfer를 나타내며, S는 Stateless가 아니라 State를 나타냅니다. 따라서 대답은 No입니다.하지만 이유는 없습니다. –

+0

@StuartGrimshaw 사실, 매번 상태를 전송하므로 S는 말 그대로 '상태 비 저장'을 의미하지는 않지만 그 상태를 나타냅니다. 물론, 당신은 매우 정확합니다. –

+0

@TomvanderWoerdt S는'stateless'를 매우 오도하는 것입니다. 나는 중학교 졸업생을 만난다.이 답변을 읽으면서 만남이나 인터뷰에서이 "작은 말도 안되는"말을 퍼뜨렸다. 나는 너의 생각을 이해하지만, 그렇게하지 마라.) – ducin

5

REST는 Representation State Transfer을 나타내며 그 중 가장 순수한 형태는 6 constraints입니다. 그 중 하나는 클라이언트 - 서버 통신에 상태가 없어야하며 요청을 완료하는 데 필요한 모든 정보를 포함해야하며 클라이언트 상태를 저장하지 않아야한다는 것입니다. 서버에.

그러나 서버가 클라이언트의 인증 코드를 서버에 저장할 수있는 이유는 있지만 서버가 각 요청에 해당 코드를 전달할 때까지는 서버가 인증을 저장할 수 없습니다 암호.

관련 문제