HTTP-запросы могут быть довольно маленькими. Как указывает хаос в его ответе, вам действительно не нужно отправлять много заголовков с запросом. Единственный необходимый заголовок — Host. Я могу еще больше упростить пример с хаосом, используя HTTP 1.0, который не поддерживает постоянные соединения.
GET / HTTP/1.0
Host: example.com
(blank line is necessary)
Ответ может быть таким же простым
HTTP/1.0 200 OK
Content-Type: text/html
data content
В этом случае накладные расходы HTTP составляют около 40 байтов в запросе и ответе. Стандартный TCP-пакет имеет размер 1500 байт, поэтому в ответном пакете остается достаточно места для фактических данных.
Есть и другие заголовки HTTP, и они имеют значение. Вы можете включать информацию о кеше и выполнять условные GET. Вы можете использовать постоянный сокет HTTP/1.1, чтобы ускорить последующие запросы. И т. д., и т. д. Вам не нужно использовать ничего из этого, если вы не хотите, но есть одна приятная особенность HTTP: есть стандартный способ делать более сложные протоколы, когда вам это нужно.
Что касается выполнения минимального HTTP в JavaME, если вам действительно важен каждый байт, вам может быть лучше написать свой собственный простой HTTP-клиент, работая с простым TCP сокет. Если вы разговариваете с известным сервером, вам вообще не нужно много реализовывать. (Если вы общаетесь с произвольными серверами, вам нужно уделять больше внимания обработке ошибок, перенаправлениям и т. д.).
person
Nelson
schedule
19.09.2009