Подробности о данных переменных
Пока мы не касались вопроса о том, какие именно данные вы будете читать с помощью sock.httprqstring и sock.gethttprqstring. Другими словами, мы не обсуждали содержимое буфера VAR. Пора это прояснить.
Мы уже объясняли, что sock.httprqstring и sock.gethttprqstring возвращают одни и те же данные, с той лишь разницей, что sock.httprqstring не удаляет данные из буфера VAR и не может обратиться к данным дальше первых 255 байт.
Формат данных в буфере VAR зависит от используемого метода.
Содержимое буфера VAR - метод HTTP GET
Допустим, клиент отправил такой запрос:
GET /form_get.html?user=CHUCKY&pwd=THEEVILDOLL HTTP/1.1
Host: 127.0.0.1:1000
User-Agent: Mozilla/5.0 (и так далее)
В буфер VAR попадёт всё, что следует за URL, до первого CR/LF. Эта часть выделена синим. Здесь две переменные - user и pwd. Они равны "CHUCKY" и "THEEVILDOLL" соответственно. Часть "HTTP/1.1" приложение может просто игнорировать.
Содержимое буфера VAR - метод HTTP POST
Пример запроса клиента:
POST /form_get.html HTTP/1.1
Host: 127.0.0.1:1000
User-Agent: Mozilla/5.0
(множество строк пропущено)
Content-Type: multipart/form-data; boundary=---------------------------21724139663430
Content-Length: 257
-----------------------------21724139663430
Content-Disposition: form-data; name="user"
CHUCKY
-----------------------------21724139663430
Content-Disposition: form-data; name="pwd"
THEEVILDOLL
-----------------------------21724139663430--
Вы получите всё, что показано синим.