Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2024, 12:51
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

POST (вопрос знатокам хардкорного HTTP)
Пытаюсь из браузера отправить запрос POST, как-то так
<form method="post" action="http://localhost:1234/update.txt">
    <textarea name="t7"></textarea>
    <input type="submit">
</form>


Локально запускаю программу, которая слушает указанный порт. Заполняю в браузере поле и нажимаю submit. Браузер коннектится к указанному порту и отправляет ЗАГОЛОВОК запроса. В заголовке ничего странного, в т.ч. есть Content-Length с неким ненулевым числом. Но самого контента нет, т.е. после пустой строки в конце заголовка принимающая программа не получает ничего.
Проверил на трех разных браузерах, то же самое.
Что я не так понимаю про HTTP, конктретно про POST?
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2024, 13:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,737

Ну, тут 2 варианта: либо у вас все браузеры сломаны и отправляют только заголовки без полезной нагрузки, либо у вас сервер неправильно обрабатывает запросы post.
Возможно ожидает payload, как 'multipart/form-data', а браузер по умолчанию отправляет в 'application/x-www-form-urlencoded'.
В первое с трудом верится.
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2024, 13:45
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

1. Три разных браузера (edge, iron portable и лисица). Трудно представить что все три сломаны.
2. Сервер ничего не обрабатывает, т.е. можно сказать что сервера нет. Есть простая программа. которая принимает входящее TCP соединение и показывает все, что по нему получает. Ничего не обрабатывает, вообще о запросе POST, его формате и разных encoding понятия не имеет. А получает программа только заголовок, пустую строку в конце, и все
Код:
POST /update.txt HTTP/1.1
Host: localhost:1234
Connection: keep-alive
Content-Length: 7
Cache-Control: max-age=0
sec-ch-ua: "Microsoft Edge";v="123", "Not:A-Brand";v="8", "Chromium";v="123"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: null
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: ru,en;q=0.9,en-GB;q=0.8,en-US;q=0.7
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2024, 14:21
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Когда вместо простой программы запрос получает штатный сервер, то все выглядит ОК. Вот пример: http://dkirusfe.bget.ru/test_post_request.html
Код:
Код:
<?php
header( 'Content-Type: text/plain' );
$header = getallheaders();
foreach( $header as $k=>$v ) echo "$k: $v\n";
echo "\n";
echo file_get_contents( 'php://input' );
Вопрос, почему простая программа без апача не видит всего запроса, а только заголовок?
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2024, 17:47
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Вопрос снимаю.
Как выяснилось, читающей программе нужно было указать опцию BINARY иначе она прекращала принимать данные увидев пустую строку
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос к знатокам google apps script gtr-kaz Общие вопросы Javascript 3 22.10.2014 08:31
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по POST отправке LeBron AJAX и COMET 1 07.03.2012 11:51
Вопрос по POST отправке LeBron jQuery 1 07.03.2012 09:13
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27