2012-01-03 2 views
0

Клиент REST обычно отправляет параметр проверки подлинности каждый раз, когда он действует подобно файлу cookie сеанса PHP в браузере. Но REST клиент не браузер, так что я, хотя в моей стороне сервера кода, почему я не считать, что параметр аутентификации и использоватьХорошо ли реализовать REST api с помощью сеансов?

session_id($_GET('authentication_code')); 

ли это хороший способ сделать это ??

+0

Я думаю, что вы должны, по крайней мере, проверять и обрабатывать контент. –

+4

Использование PHP-сессий каким-либо образом не соответствует «Безстоящим» [ограничениям] (http://en.wikipedia.org/wiki/Representational_state_transfer#Constraints) REST, поэтому я бы сказал, что короткий ответ на это - «Нет». – DaveRandom

+0

Посмотрите, что означает «идемпотент». Услуги REST должны быть описаны с использованием этого слова. – duffymo

ответ

3

Ответ на этот вопрос нет. S REST предназначен для stateless, что означает, что вы ничего не можете хранить на сервере.

+12

ОТДЫХ - это представление государственного переноса состояния, поэтому S означает государство, а не безгражданство, поэтому ответ «Нет», но не по той причине, о которой вы говорите. –

+0

@StuartGrimshaw Верно, но вы передаете состояние каждый раз, поэтому, в то время как S буквально не означает «безгосударственный», он его представляет. Вы, конечно, очень верны. –

+0

@TomvanderWoerdt S для 'stateless' очень вводит в заблуждение. Полагаю, что младшие разработчики, прочитав этот ответ, распространяют эту «небольшую ерунду» на встречах или интервью. Я понимаю вашу идею, но не делайте этого так, пожалуйста;) – ducin

5

REST означает Representation State Transfer, и в его чистейшей форме сводится до 6 constraints, одна из которых заключается в том, что связь клиент-сервер должна быть без гражданства, она должна содержать всю информацию, необходимую для завершения запроса, никакое состояние клиента не должно храниться на сервере.

Сервер, однако, может быть работоспособным, поэтому вы можете хранить аутентификационный код клиента на сервере, но сам клиент должен передать этот код с каждым запросом, сервер не может использовать сеансы для хранения аутентификации код.

Смежные вопросы