HTTP is a contract, a communication protocol and REST is a concept, an architectural style
, который может использовать HTTP, FTP или другие протоколы связи, но широко используется с HTTP.
REST implies a series of constraints about how Server and Client should interact
.HTTP is a communication protocol with a given mechanism for server-client data transfer
, он чаще всего используется в REST API только потому, что REST was inspired by WWW (world wide web) which largely used HTTP
до определения REST, поэтому проще реализовать стиль REST API с HTTP.
There are three major constraints in REST (but there are more):
1.
Взаимодействие между сервером и клиентом должнобыть описанным только через гипертекст.
2.
Сервер и клиент должны быть слабо связаны и не делать предположений друг о друге.Клиент должен знать только точку входа в ресурс.Данные взаимодействия должны быть предоставлены сервером в ответе.
3.
Сервер не должен хранить никакой информации о контексте запроса.Запросы должны быть независимыми и идемпотентными (то есть, если один и тот же запрос повторяется бесконечно, получается тот же самый результат)
И HTTP - это просто протокол связи (инструмент), который может помочь в достижении этого.
Для получения дополнительной информации проверьте эти ссылки:
https://martinfowler.com/articles/richardsonMaturityModel.html http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven