Для HTTP : ну, вот как определяется протокол. Протокол основан на тексте. Упрощает реализацию без необходимости беспокоиться о таких вещах, как порядок байтов.
Содержимое (html, javascript, images, ...) можно отправлять сжатым, это вопрос кодирования «согласования» между браузером и сервером (оба должны поддерживать его). См. Страницу HTTP Compression в Википедии, чтобы узнать, как это работает.
Передача JavaScript в предварительно обработанной форме (некоторый вид байт-кода) потребует стандартизации и реализации формы байт-кода во всех браузерах и даст очень мало преимуществ. Разница в размере по сравнению со сжатым, уменьшенным JavaScript, скорее всего, не будет звездной (в конце концов, вы будете отправлять одинаковое количество информации , поэтому хороший алгоритм сжатия должен сделать размер обоих практически одинаковым).
Вам также необходимо скомпилировать код JS, прежде чем вы сделаете его доступным на своем веб-сервере (еще одна задача сборки / развертывания), или скомпилировать его на лету (потеря ЦП), и это не избавит от необходимости полноценный интерпретатор исходного кода в браузере без ограничения языка (не более eval
/ генерация кода на внешнем интерфейсе, если он не может обработать JS-источник).