Не могу говорить с iPhone, так как я не знаю достаточно о технических деталях сетевого стека, но для BlackBerry HTTP-запросы из браузера обрабатываются иначе, чем запросы, инициированные приложением в целом. BlackBerry как решение состоит не только из стека TCP / HTTP на стороне устройства, но и из службы BlackBerry, которая включает в себя (в зависимости от того, являетесь ли вы предприятием или нет) сервер BlackBerry Enterprise Server со службами мобильных данных (BES / MDS), размещенный на вашей корпоративной сети или размещенного на сервере Research In Motion сервера BlackBerry Internet Services (BIS), который передает все соединения через мобильный браузер. Эти серверы могут делать много вещей, включая обработку некоторых аспектов файлов cookie, аутентификацию и транскодирование контента, чтобы сделать контент более потребляемым мобильным устройством (изображения и тому подобное). Для BES / MDS они могут даже выступать в качестве защищенной конечной точки в HTTPS-соединении.
В любом случае, это также означает, что многие функции, которые вы ожидаете от обычного TCP / HTTP-соединения, на самом деле выполняются на устройстве и могут контролироваться оператором, предприятием или RIM. Голые сокеты различаются, потому что различные серверы в середине не могут сделать столько предположений о сокете TCP, сколько они могут о HTTP-соединении, поэтому они не могут возиться с вашими HTTP-запросами. Многие приложения BlackBerry на самом деле заканчивают тем, что пишут свой собственный HTTP-клиент поверх слоя сокетов по этой самой причине, поэтому, если вам нужно сделать что-то вроде длинного опроса HTTP (Comet?), Обязательно напишите его поверх соединения с сокетом, не встроенное HTTP-соединение.