Если я отправлю запрос HTTP GET, получу ли я ответ в GET?
Это, наверное, очень простой вопрос, так что простите мое невежество
Какой метод использует сервер для ответа на запросы, которые он получает?
Я делаю веб-приложение, и есть определенный маршрут, который возвращает большой (скажем,.iso изображение) файл. Поэтому, когда пользователь нажимает кнопку загрузки, я заставляю JavaScript запрашивать URL с {method: "GET"}
,
Когда в это время начинается загрузка на компьютере пользователя, какой метод HTTP-сервера используется для отправки файлов?
Я действительно смущен:
- Как обрабатывается загрузка с сервера?
- по умолчанию это POST для больших файлов?
- и как программист, как я могу гарантировать, что загрузка будет простой (возобновляемой) для моих конечных пользователей?
2 ответа
Каким способом пользователь сервера отвечает на запросы, которые он получает?
HTTP - это протокол запроса-ответа. Независимо от метода HTTP (GET, POST, HEAD и т. Д.), Который вы используете для отправки запроса на сервер, сервервсегда отвечает одинаково (что не имеет ничего общего с вашим методом запроса); Конечно, содержание ответа меняется в зависимости от вашего запроса.
Так что нет такой вещи, как POST или GET ответы.
Как обрабатывается загрузка с сервера?
При загрузке файлов на сервер / службу вы отправляете запрос, содержащий сам файл, протокол HTTP предлагает вам отправлять данные с помощью запроса POST.
При загрузке файлов с сервера сервер отправит вам файл внутри ответа. Вы должны использовать запрос GET при запросе удаленных файлов, так как GET определяется как команда, используемая для получения ресурсов. Кроме того, тип отправляемых данных указывается в заголовочной части запроса и ответа как Content-Type
,
Обратите внимание, что вы также можете загружать файлы с помощью GET, вставляя весь файл в URL, или загружать файлы в ответ на запрос POST. Однако это нестандартные приложения и имеют ограничения (например, ограничение на максимальную длину URL-адреса), вам также потребуется гораздо больше работы на стороне сервера для обработки этих запросов.
По умолчанию это POST для больших файлов?
На этот вопрос уже должен быть дан ответ - сервер не отправляет вам POST или GET, а только ответы.
As a programmer how can I ensure that downloading is easy (resumable) for my end users?
This will depend on both the server-side and client-side technology used. Modern browsers and properly configured web servers generally can resume downloads of existing files automatically. However if you're building the file response manually on the server, you will also need to manually handle the download resume. See this answer for implementation with PHP.
GET
а также POST
являются методами запроса для клиентов. Смотрите сравнение.
- GET - запрашивает данные из указанного ресурса. Строка запроса (пары имя / значение) отправляется в URL-адресе запроса GET.
- POST - отправляет данные для обработки указанному ресурсу. Строка запроса (пары имя / значение) отправляется в теле сообщения HTTP запроса POST.
Метод не меняется от запроса к ответу. Заголовки ответа даже не упоминают метод. (Пример из этой статьи об основах HTTP.)
HTTP/1.1 200 OK
Date: Sun, 18 Oct 2009 08:56:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Sat, 20 Nov 2004 07:16:26 GMT
ETag: "10000000565a5-2c-3e94b66c2e680"
Accept-Ranges: bytes
Content-Length: 44
Connection: close
Content-Type: text/html
X-Pad: avoid browser bug
<html><body><h1>It works!</h1></body></html>
Здесь Content-Type
Заголовок играет большую роль в определении того, что клиент должен делать с контентом.