PUT vs POST: Jaka jest różnica?

Spisie treści:

Anonim

Co to jest PUT?

Metoda PUT służy do aktualizacji zasobów dostępnych na serwerze. Zwykle zastępuje to, co istnieje w docelowym adresie URL, na coś innego. Możesz go użyć do stworzenia nowego zasobu lub nadpisania istniejącego. PUT żąda, aby dołączona jednostka była przechowywana pod podanym żądanym identyfikatorem URI (Uniform Resource Identifier).

W tym samouczku dowiesz się:

  • Co to jest PUT?
  • Co to jest POST?
  • Przykład PUT
  • Przykład POST
  • Różnica między PUT i POST
  • Testowanie API z żądaniami PUT
  • Testowanie API za pomocą żądań POST
  • Zalety metody PUT
  • Zalety metody POST

Co to jest POST?

POST to metoda obsługiwana przez protokoły HTTP i

przedstawia, że ​​serwer WWW akceptuje dane zawarte w treści żądanej wiadomości. POST jest często używany przez sieć World Wide Web do wysyłania danych generowanych przez użytkowników na serwer sieciowy lub podczas przesyłania pliku.

KLUCZOWE RÓŻNICE:

  • Metoda PUT jest wywoływana, gdy trzeba zmodyfikować pojedynczy zasób, podczas gdy metoda POST jest wywoływana, gdy trzeba dodać zasób podrzędny.
  • Odpowiedź metody PUT może być buforowana, ale nie można buforować odpowiedzi metody PUT.
  • Możesz użyć zapytania UPDATE w PUT, podczas gdy możesz użyć zapytania tworzenia w POST.
  • W metodzie PUT klient decyduje, który zasób URI powinien mieć, aw metodzie POST serwer decyduje, który zasób URI powinien mieć.
  • PUT działa tak specyficznie, a POST jako abstrakcyjne.
  • Jeśli wyślesz to samo żądanie PUT wiele razy, wynik pozostanie taki sam, ale jeśli wyślesz to samo żądanie POST wiele razy, otrzymasz różne wyniki.
  • Metoda PUT jest idempotentna, podczas gdy metoda POST nie jest idempotentna.

Przykład PUT

Oto przykład metody PUT na serwerze WWW:

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

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

Żądanie

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

New File

Odpowiedzi

Jeśli zasób docelowy ma aktualną reprezentację i jest zmodyfikowany stanem załączonej reprezentacji, to serwer powinien wysłać dwie odpowiedzi. Pierwszy kod odpowiedzi to 200 (OK), a drugi kod odpowiedzi to 204 (Brak treści).

Jeśli zasób docelowy nie ma żadnej reprezentacji, serwer powinien poinformować użytkownika, wysyłając odpowiedź w kodzie 201 (utworzonym).

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

Przykład POST

Oto przykład metody POST:

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

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

Formularz korzystający z domyślnego typu zawartości application / x-www-form-urlencoded:

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

Różnica między PUT i POST

Oto ważna różnica między metodą PUT i POST:

POŁOŻYĆ POCZTA
Ta metoda jest idempotentna. Ta metoda nie jest idempotentna.
Metoda PUT jest wywoływana, gdy trzeba zmodyfikować pojedynczy zasób, który jest już częścią kolekcji zasobów. Metoda POST jest wywoływana, gdy musisz dodać zasób podrzędny w kolekcji zasobów.
RFC-2616 przedstawia, że ​​metoda PUT wysyła żądanie dotyczące dołączonej jednostki przechowywanej w podanym identyfikatorze URI żądania. Ta metoda żąda od serwera akceptacji jednostki zawartej w żądaniu.
Składnia metody PUT to PUT / pytania / {id-pytania} Składnia metody POST to POST / questions
Odpowiedź metody PUT może być zapisana w pamięci podręcznej. Nie można buforować odpowiedzi metody PUT.
PUT / vi / juice / orders / 1234 wskazuje, że aktualizujesz zasób, który jest oznaczony jako „1234”. POST / vi / juice / orders wskazuje, że tworzysz nowy zasób i zwraca identyfikator opisujący zasób.
Jeśli wyślesz to samo żądanie wiele razy, wynik pozostanie taki sam. Jeśli wyślesz to samo żądanie POST więcej niż jeden raz, otrzymasz różne wyniki.
PUT działa tak specyficznie. POST działa jako abstrakcja.
Używamy zapytania UPDATE w PUT. Używamy tworzenia zapytania w POST.
W metodzie PUT klient decyduje, który zasób URI powinien mieć. W metodzie POST serwer decyduje, który zasób URI powinien mieć.

Testowanie API z żądaniami PUT

Oto kroki, aby przetestować interfejs API za pomocą żądań PUT:

Testowanie API z żądaniami PUT

Krok 1) Zaktualizuj zasoby za pomocą żądania PUT.

Krok 2) Użyj metody GET dla zasobu. Jeśli żądanie PUT się powiedzie, otrzymasz nowe dane. Ta metoda zakończy się niepowodzeniem, jeśli dane podane w żądaniu są nieprawidłowe. Dlatego niczego nie zaktualizuje.

Testowanie API za pomocą żądań POST

Oto kroki, aby przetestować interfejs API za pomocą żądań POST:

Testowanie API za pomocą żądań POST

Krok 1) Utwórz zasób za pomocą żądania POST i upewnij się, że zwraca kod stanu 200.

Krok 2) Wykonaj żądanie GET dla tego zasobu i zapisz dane w odpowiednim formacie.

Krok 3) Musisz dodać testy, które zapewniają, że żądania POST kończą się niepowodzeniem z niepoprawnymi danymi.

Zalety metody PUT

Oto zalety / zalety korzystania z metody PUT:

  • Pomaga w przechowywaniu dostarczonej jednostki pod podanym identyfikatorem URI
  • Jeśli podana jednostka już istnieje, możesz wykonać operację aktualizacji lub utworzyć za pomocą tego identyfikatora URI.
  • Możesz tworzyć zasoby tyle razy, ile chcesz.
  • Tworzenie zasobu metodą PUT jest bardzo proste.
  • Nie musisz sprawdzać, czy użytkownik kliknął przycisk przesyłania kilka razy, czy nie.
  • Potrafi zidentyfikować podmiot załączony do wniosku.

Zalety metody POST

Oto zalety / zalety korzystania z metody POST:

  • Ta metoda pomaga określić identyfikator URI zasobu.
  • Określenie nowego nagłówka lokalizacji zasobów jest bardzo łatwe przy użyciu nagłówka lokalizacji.
  • Możesz wysłać prośbę o zaakceptowanie jednostki jako nowego podwładnego zasobu, który jest identyfikowany przez identyfikator URI.
  • Możesz wysyłać dane generowane przez użytkowników na serwer sieciowy.
  • Jest to bardzo przydatne, gdy nie znasz adresu URL, aby zachować jakiekolwiek zasoby.
  • Użyj POST, gdy potrzebujesz serwera, który kontroluje generowanie adresów URL twoich zasobów.
  • POST to bezpieczna metoda, ponieważ jej żądania nie pozostają w historii przeglądarki.
  • Możesz bez wysiłku przesyłać duże ilości danych za pomocą poczty.
  • Możesz zachować prywatność danych.
  • Ta metoda może służyć do wysyłania danych binarnych oraz danych ASCII.