Я хочу написать чрезвычайно легкий PHP-сервер, который обрабатывает запросы данных от удаленных клиентов. Возвращенные данные являются табличными (например, данные, считываемые из файла CSV или таблицы базы данных). «Проблема» в том, что я мог бы возвращать потенциально несколько сотен тысяч строк данных – с шириной столбца от 10 до 15 (в зависимости от типа запрашиваемых данных).
Короче говоря, возвращаемые данные могут быть ОГРОМНЫМИ – и, пытаясь сохранить полосу пропускания, а также увеличить скорость передачи, я хотел бы сжать данные (возможно, по желанию, зашифровать их, пока мы на нем), прежде чем отправить его обратно клиенту ,
Я не понимаю, как написать серверный скрипт для обработки запроса (и отправить данные или код ошибки обратно).
Для простоты предположим, что я читаю данные из плоского файла, используя fopen, я мог бы что-то вроде этого:
<?php // extract request variables and determine action required based on REQUEST params // handle request (fetch requested data) // if no error then return compressed (and encrypted?) data // else if error return error code ?>
Не очень хорошо знакомый с PHP, может кто-то, пожалуйста, помогите мне с «fleshing out» этого кода заглушки немного больше (особенно часть, когда мы возвращаем сжатые данные (или код ошибки) через HTTP-заголовки и т. Д.) ?.
Последнее, но не менее важное, я должен указать, что клиент, скорее всего, будет работать на другой платформе и на другом языке (я буду писать клиент на C ++), поэтому я хотел бы использовать текст PLAIN ASCI для передачи данных ( в отличие от XML, который очень многословен и требует синтаксического анализа на другом конце).
Я мог бы предложить вам использовать ZendFramework для вашего сервера REST. Основные соглашения уже реализованы для вас, и это позволит вам сосредоточиться на ваших конкретных требованиях (данные, текст, сжатие и т. Д.).
Вот справочная страница справочника Zend REST: http://framework.zend.com/manual/en/zend.rest.server.html
Кроме того, вот сообщение в блоге, которое я написал в своем личном опыте с использованием Zend REST: http://ajcoon.blogspot.com/2009/09/rest-services-supporting-xml-and-json.html
Несмотря на то, что я использовал его для возврата XML и JSON, можно было легко определить их собственное представление, которое использует другую кодировку / формат для своих данных.
Вот возможность рассмотреть: Загрузите таблицу данных в Amazon SimpleDB, а затем используйте это: http://blog.webservius.com/2010/09/14/introducing-amazon-simpledb-integration/ (она автоматически превращает любой SimpleDB таблицу в полнофункциональный REST API в комплекте с поддержкой JSON, страницей регистрации разработчика и т. д. и т. д.)