Se eu enviar uma solicitação HTTP GET, recebo a resposta em GET? [fechadas]

5

Esta é provavelmente uma pergunta muito básica, então perdoe minha ignorância

Qual método o servidor usa para responder às solicitações que recebe?

Estou criando um aplicativo da web e há uma determinada rota que retorna um arquivo grande (digamos, imagem .iso). Então, quando o usuário clica em um botão de download, eu faço o JavaScript pedir o URL com {method: "GET"} .

Quando o download começa na máquina do usuário no momento em que o servidor do método HTTP está usando para enviar arquivos?

Estou muito confuso:

  • como o download de usuário do upload do servidor é tratado?
  • padrão para POST para arquivos grandes?
  • e como programador, como posso garantir que o download seja fácil (recuperável) para meus usuários finais?
por RinkyPinku 16.07.2017 / 10:45

2 respostas

9

Which method does the server user to respond to the requests it gets?

HTTP é o protocolo de solicitação-resposta. Independentemente do método HTTP (GET, POST, HEAD, etc.) que você usa para fazer um pedido ao servidor, o servidor sempre responde da mesma maneira (que não tem nada a ver com o seu método de solicitação ); claro que o conteúdo da resposta é alterado dependendo do seu pedido.
Portanto, não há respostas POST ou GET.

how is the server-upload user-download handled?

Ao fazer upload de arquivos para um servidor / serviço que você está enviando uma solicitação que contém o arquivo em si, o protocolo HTTP sugere que você deve enviar dados usando a solicitação POST .

Ao baixar arquivos do servidor, o servidor enviará o arquivo dentro da resposta. Você deve usar a solicitação GET ao solicitar arquivos remotos, pois GET é definido como o comando usado para recuperar recursos. Além disso, o tipo de dados sendo enviado é especificado na parte do cabeçalho da solicitação e da resposta como Content-Type .

Note que você pode também carregar arquivos usando GET, colocando todo o arquivo em URL ou baixando arquivos com resposta à solicitação POST. No entanto, estes são aplicativos não-padrão e têm limitações (por exemplo, limite no comprimento máximo de URL), você também teria muito mais trabalho no lado do servidor processando essas solicitações.

Does it default to POST for large files?

Isso já deve ser respondido - o servidor não envia nenhum POST ou GET, apenas respostas.

As a programmer how can I ensure that downloading is easy (resumable) for my end users?

Isso dependerá da tecnologia do lado do servidor e do lado do cliente usada. Navegadores modernos e servidores da Web adequadamente configurados geralmente podem retomar os downloads de arquivos existentes automaticamente. No entanto, se você estiver criando a resposta do arquivo manualmente no servidor, também precisará manipular manualmente o download. Veja esta resposta para implementação com PHP.

    
por 16.07.2017 / 11:42
3

Os GET e POST são métodos de solicitação para clientes. Veja a comparação .

  • GET - Requests data from a specified resource. The query string (name/value pairs) is sent in the URL of a GET request.
  • POST - Submits data to be processed to a specified resource. The query string (name/value pairs) is sent in the HTTP message body of a POST request.

O método não muda de pedido para resposta. Os cabeçalhos de resposta nem sequer mencionam o método. (Exemplo deste artigo HTTP Basics .)

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>

Aqui, o cabeçalho Content-Type desempenha um papel mais importante na identificação do que o cliente deve fazer com o conteúdo.

    
por 16.07.2017 / 11:50