REST - это архитектурный стиль для построения веб-сервисов. Рой Филдинг сформулировал это, основываясь на своем опыте разработки HTTP, но он превосходит HTTP. Например, вы можете развернуть службу RESTful через обычный почтовый обмен.
REST-представления ваших ресурсов могут быть чем угодно, хотя Рой действительно подчеркивает, что люди должны стараться использовать очень тщательно разработанные стандартные представления. Там нет ничего плохого с двоичным. На самом деле представления изображений, такие как JPEG и PNG, являются двоичными. Google Protocol Buffers также позволяет создавать компактные двоичные представления структурированных данных.
Таким образом, короткий ответ заключается в том, что вы, безусловно, можете быть RESTful и использовать двоичные представления и домашнюю двоичную замену HTTP.
Я бы очень рекомендовал использовать HTTP для эффективности. Если вы используете свой собственный протокол, вы потеряете все рычаги, предоставляемые замечательной инфраструктурой кэширования HTTP, которая стоит между вашим сервером и его клиентами. Полная загрузка клиента падает прямо на ваш сервер, а не распределяется по промежуточным кешам.
10/4/2010: В наших API REST на основе HTTP мы теперь поддерживаем Java Serialized Object и двоичные представления Kryo в дополнение к XML, JSON и XHTML. Библиотека сериализации Kryo работает значительно лучше других, не требуя какого-либо специального протокола. Другой альтернативой для сокращения пропускной способности является использование сжатия HTTP вместе с текстовым представлением.