Ключевая вещь, которая позволяет Erlang масштабироваться, связана с параллелизмом.
операционная система обеспечивает параллелизм двумя механизмами:
Процессы не совместно используют состояние †“один процесс, не может разрушить другого дизайном.
доля Потоков указывает, что †“один поток может разрушить другого дизайном †“, это - Ваша проблема.
С Erlang †“один процесс операционной системы используется виртуальной машиной, и VM предоставляет параллелизм программе Erlang не при помощи потоков операционной системы, а путем обеспечения Erlang обрабатывает †“, который является реализациями Erlang его собственный timeslicer.
Эти Erlang процесс говорят друг с другом путем отправки сообщений (обработанный Erlang VM не операционная система). Процессы Erlang обращаются друг к другу использующему идентификатор процесса (PID), который имеет трехчастный адрес <<N3.N2.N1>>
:
Два процесса на том же VM, на различном VM's на той же машине или двух машинах связываются таким же образом †“Ваше масштабирование, поэтому независимо от количества реальных машин, Вы развертываете свое приложение на (в первом приближении).
Erlang только ориентирован на многопотоковое исполнение в тривиальном смысле †“, он не имеет потоков. (Язык то есть, использование VM SMP / многоядерное использование VM один поток операционной системы на ядро).
Каждое поле заголовка HTTP-запроса находится в $ _ SERVER
(кроме Cookie
), а ключ начинается с HTTP_
. Если вы используете Apache, вы также можете попробовать apache_request_headers
.
Попробуйте это
print_r
($ _ SERVER)
Он перечислит все в массиве
Посмотрите на переменную $ _ SERVER , чтобы узнать, что она содержит. Связанная страница руководства содержит много полезной информации, но также просто выполните на ней var_dump
, чтобы увидеть, что на самом деле в ней. Многие записи будут или не будут заполнены, в зависимости от того, что решит сделать клиент, и от странных особенностей PHP. Глядя на тот, что находится на моем локальном сервере, есть также записи $ _SERVER ["ALL_HTTP"], в которых их все просто перечисляются в виде строки, но, видимо, это не стандартно, так как не указано на странице руководства.