PUT vs POST: Qual é a diferença?

Índice:

Anonim

O que é PUT?

O método PUT é usado para atualizar o recurso disponível no servidor. Normalmente, ele substitui tudo o que existe no URL de destino por outra coisa. Você pode usá-lo para criar um novo recurso ou sobrescrever um existente. PUT solicita que a entidade fechada seja armazenada no URI (Uniform Resource Identifier) ​​solicitado fornecido.

Neste tutorial, você aprenderá:

  • O que é PUT?
  • O que é POST?
  • Exemplo de PUT
  • Exemplo de POST
  • Diferença entre PUT e POST
  • Testando uma API com solicitações PUT
  • Testando uma API com solicitações POST
  • Vantagens do método PUT
  • Vantagens do método POST

O que é POST?

POST é um método compatível com HTTP e

descreve que um servidor da web aceita os dados incluídos no corpo da mensagem, que é solicitada. O POST é freqüentemente usado pela World Wide Web para enviar dados gerados pelo usuário para o servidor da web ou quando você faz upload de arquivos.

PRINCIPAIS DIFERENÇAS:

  • O método PUT é chamado quando você precisa modificar um único recurso, enquanto o método POST é chamado quando você precisa adicionar um recurso filho.
  • A resposta do método PUT pode ser armazenada em cache, mas você não pode armazenar em cache as respostas do método PUT.
  • Você pode usar a consulta UPDATE em PUT, enquanto você pode usar a consulta criar em POST.
  • No método PUT, o cliente decide qual recurso URI deve ter, e no método POST, o servidor decide qual recurso URI deve ter.
  • PUT funciona como específico, enquanto o POST funciona como abstrato.
  • Se você enviar a mesma solicitação PUT várias vezes, o resultado permanecerá o mesmo, mas se você enviar a mesma solicitação POST várias vezes, receberá resultados diferentes.
  • O método PUT é idempotente, enquanto o método POST não é idempotente.

Exemplo de PUT

Aqui está o exemplo de servidor da web de um método PUT:

HTTP PUT http://www.google.com/users/234

HTTP PUT http://www.google.com/users/234/accounts/567

Solicitação

PUT /new.html HTTP/1.1Host: example.comContent-type: text/htmlContent-length: 20

New File

Respostas

Se o recurso de destino tiver representação atual e for modificado com o estado da representação fechada, o servidor deve enviar duas respostas. O primeiro código de resposta é 200 (OK) e o segundo código de resposta é 204 (Sem Conteúdo).

Caso o recurso de destino não possua representação, o servidor deve informar ao usuário enviando uma resposta 201 código (Criado).

 HTTP/1.1 201 CreatedContent-Location: /new.html

Exemplo de POST

Aqui está um exemplo de método POST:

HTTP POST http://www.google.com/users

HTTP POST http://www.google.com/users/234/accounts

Um formulário que usa o tipo de conteúdo padrão application / x-www-form-urlencoded:

POST /test HTTP/1.1Host: abc.exampleContent-Type: application/x-www-form-urlencodedContent-Length: 40field1=value1&field2=value2

Diferença entre PUT e POST

Aqui está a diferença importante entre os métodos PUT e POST:

POR PUBLICAR
Este método é idempotente. Este método não é idempotente.
O método PUT é chamado quando você precisa modificar um único recurso, que já faz parte da coleção de recursos. O método POST é chamado quando você precisa adicionar um recurso filho na coleção de recursos.
A RFC-2616 descreve que o método PUT envia uma solicitação para uma entidade fechada armazenada no URI de solicitação fornecido. Este método solicita que o servidor aceite a entidade incluída na solicitação.
A sintaxe do método PUT é PUT / questions / {question-id} A sintaxe do método POST é POST / perguntas
A resposta do método PUT pode ser armazenada em cache. Você não pode armazenar em cache as respostas do método PUT.
PUT / vi / juice / orders / 1234 indica que você está atualizando um recurso identificado por "1234". POST / vi / juice / orders indica que você está criando um novo recurso e retorna um identificador para descrever o recurso.
Se você enviar a mesma solicitação várias vezes, o resultado permanecerá o mesmo. Se você enviar a mesma solicitação POST mais de uma vez, receberá resultados diferentes.
PUT funciona como específico. O POST funciona como abstrato.
Usamos a consulta UPDATE em PUT. Usamos criar consulta no POST.
No método PUT, o cliente decide qual recurso URI deve ter. No método POST, o servidor decide qual recurso URI deve ter.

Testando uma API com solicitações PUT

Aqui estão as etapas para testar a API com solicitações PUT:

Testando uma API com solicitações PUT

Etapa 1) Atualize os recursos com a solicitação PUT.

Etapa 2) Use o método GET para o recurso. Se a solicitação PUT for bem-sucedida, você receberá novos dados. Este método falhará se os dados fornecidos na solicitação forem inválidos. Portanto, ele não atualizará nada.

Testando uma API com solicitações POST

Aqui estão as etapas para testar a API com solicitações POST:

Testando uma API com solicitações POST

Etapa 1) Crie um recurso usando a solicitação POST e certifique-se de que ele retorne o código de status 200.

Etapa 2) Faça uma solicitação GET para esse recurso e salve os dados no formato correto.

Etapa 3) Você deve adicionar testes que garantam que as solicitações POST falhem com dados incorretos.

Vantagens do método PUT

Aqui estão as vantagens / vantagens de usar o método PUT:

  • Ajuda a armazenar a entidade fornecida sob o URI fornecido
  • Se a entidade fornecida já existe, você pode executar a operação de atualização ou pode criar com esse URI.
  • Você pode criar um recurso quantas vezes quiser.
  • Criar um recurso com o método PUT é muito fácil.
  • Você não precisa verificar se o usuário clicou no botão enviar várias vezes ou não.
  • Ele pode identificar a entidade incluída na solicitação.

Vantagens do método POST

Aqui estão as vantagens / vantagens de usar o método POST:

  • Este método ajuda a determinar o URI do recurso.
  • Especificar um novo cabeçalho de localização de recurso é muito fácil usando o cabeçalho de localização.
  • Você pode enviar uma solicitação para aceitar a entidade como um novo subordinado do recurso, que é identificado pelo URI.
  • Você pode enviar dados gerados pelo usuário para o servidor web.
  • É muito útil quando você não sabe o URL para guardar algum recurso.
  • Use o POST quando precisar do servidor, que controla a geração de URL de seus recursos.
  • POST é um método seguro, pois suas solicitações não permanecem no histórico do navegador.
  • Você pode transmitir sem esforço uma grande quantidade de dados usando a postagem.
  • Você pode manter os dados privados.
  • Este método pode ser usado para enviar dados binários e também ASCII.