Как описано в заголовке, как HTTP 1.0 осуществляет отправку большого тела, как в запросе POST без 100, продолжается? Будет ли клиент просто отправить все тело? Если да, то какая польза от 100 будет продолжаться?
1 ответ
Коды ответов 1xx не используются в HTTP/1.0. Эти коды были введены с HTTP/1.1.
HTTP 1.0 широко использовался до начала века (HTTP/1.1 был стандартизирован в 1999 году). В то время HTTP не мог обрабатывать длинное двоичное содержимое, такое как загрузка файлов.
В HTTP/1.1, если вы хотите загрузить файл и отправить запрос, содержащий этот файл, на сервер, браузер считывает файл и включает его в запрос, который он отправляет на сервер, потенциально тратя минуты на загрузку двоичного потока. если по какой-либо причине значения заголовка для запроса неверны или иным образом отклонены сервером, вам потребуется снова загрузить весь файл во втором запросе.
Отправляя запрос, помеченный как Expect: 100-Continue
, клиент просит сервер проверить содержимое заголовка запроса перед загрузкой данных, таким образом, клиенты не отправляют содержимое файла до тех пор, пока оно не станет разумным. уверен, что запрос будет успешным. Затем, после того как клиент получил ответ 100, он начинает загружать файл.
Поэтому, чтобы ответить на ваш вопрос, в HTTP 1.0 файл будет загружен несколько раз, если сервер отклонит запрос POST, а браузер попробует его снова. Обратите внимание, что когда HTTP 1.0 был распространен, для больших загрузок использовались другие протоколы, например FTP.