18

Common HTTP operations are GET and POST -- e.g. GET is implemented by every web browser, and so is POST when the web page is a web form (e.g. with <input> and a Submit button).

What about PUT and DELETE though? I imagine these might be used to edit the static content (i.e. pages) of a web site. What application(s) provide/implement this functionality?

  • With a UI -- i.e. not just an API
  • Maybe little else (i.e. not necessarily a huge and multi-functional application)
  • Maybe free (libre and/or gratis) and able to run on Windows?
  • An application which could be used (without programming) by a non-technical end-user, not just an API used by other software e.g. JavaScript

I imagine it would be like FTP client software, except via HTTP(S) instead of FTP -- am I right?

Apologies for ask for such a basic (and maybe commonplace) thing, I find it difficult to Google for.

And this question -- i.e. "[http] put" -- doesn't seem to have been asked here before

  • I've worked with an API that used all 4 verbs for respective 'CRUD' operations: PUT - Create a new object; GET - Read an object; POST - Update an object; DELETE - Delete an object. It seemed to be too clever for its own good, instead of just using the basic GET/POST verbs. – Jim May 7 at 23:24
  • 2
    All relatively modern browsers also actively use OPTIONS too (for CORS requests). Also browsers (via JavaScript) support PUT/DELETE which are frequently exposed by REST services... – Alexei Levenkov May 8 at 20:14
  • @Jim POST is create and PUT is update. See w3.org/Protocols/rfc2616/rfc2616-sec9.html – Hans Kilian May 10 at 6:56
  • @HansKilian actually PUT can be both - according to the very same spec you just linked – Frank Hopkins May 10 at 8:38
12

The PUT (and DELETE) verb is used by the WebDAV protocol, so any WebDAV-compatible software fulfills your requirement. WebDAV support is widespread, for example every major OS supports it in its file browser, including the Windows Explorer.

(Additionally, there also exist extensions of WebDAV for managing contacts and calendar entries, e.g., GroupDAV, for which plugins for the major mail clients like Thunderbird and Microsoft Outlook exist. And there is the version-control system Subversion, which is most commonly used over another WebDAV extension. So most mail clients and every SVN client would be an answer to your question of which software can use PUT. But these kinds of clients are not really useful for editing static website content.)

  • Wow. Are you saying I can use Windows Explorer to read/write/browse/delete files in a directory structure (i.e. "paths") which a web server exposes via HTTP? – ChrisW May 7 at 13:55
  • Yes, if a server implements this (by having support for WebDAV) and allows it to you (usually such access is password protected). – Philipp Wendler May 7 at 13:57
  • 2
    As example, open https:\\live.sysinternals.com in your Windows Explorer (explanation). – Philipp Wendler May 7 at 14:00
  • That's "far out". Thank you. – ChrisW May 7 at 14:03
  • This is only useful if the server you want to talk to supports WebDAV, which is rarely the case. – James_pic May 9 at 14:00
45

I'd recommend Postman for this.

  • It supports all HTTP verbs, not just GET, POST, PUT and DELETE. Some operations might require HTTP headers to be set (e.g. for authentication) and it supports that too.
  • You can supply a raw body for your request, or key-value pairs which Postman can transform into e.g. URL encoded form content.
  • It has a UI.
  • While it does offer additional functionality like collaboration, I'm using it myself just for basic functionality like grouping and saving requests.
  • It's free and runs on Windows and a couple of other OSes.

enter image description here

  • You beat me to it :-) I have been using PostMan for this sort of thing for years, and am unaware of anything better. – Mawg May 7 at 13:33
  • 3
    Just to keep it more complete. Here are some alternatives: Insomnia ( insomnia.rest ) - Free version available Paw ( paw.cloud ) - Paid SoapUI ( soapui.org ) - Open source version available HTTPie ( httpie.org ) - Open source, CLI – eKKiM May 8 at 14:04
  • 3
    @eKKiM you should post that as a separate answer (if you mention how the software meets the requirements, as all answers do here). Comments are meant to improve the current post, which is about Postman. – Glorfindel May 8 at 14:05
20

Probably a bit lower level than you're looking for, but cURL largely meets your requirements.

  • While it's primarily a library for use by other software, it has a command-line UI that's actually rather easy to use for most tasks.
  • It's 100% FOSS (using a permissive license).
  • It supports completely arbitrary HTTP request types. Obviously PUT and DELETE as requested, but also more exotic stuff like OPTIONS, TRACE, PATCH, and the various WebDAV extensions (and actually almost anything, provided it doesn't require encapsulating a connection inside the request).
  • It's got a bunch of other useful features like direct support for most authentication types, specifying arbitrary request headers, providing sets of specific HTTP cookies with the request, HTTP/2, TLS, and a whole slew of other things (including an almost comical number of protocols other than HTTP).
  • It's tiny (largely because it doesn't have a graphical UI).

Sample command to use PUT to upload a local file (doesn't do any authentication, but should work just fine with HTTPS):

curl -X PUT --data-binary @/some/local/file.txt -o response.txt https://example.com/file.txt

That will take the contents of /some/local/file.txt, use it as the request body for a PUT request to https://example.com, save the response to response.txt on the local system, and display a nice progress meter for the upload.


It's important to note that regardless of what tool you use for this, the web server has to support it. In most cases, this means that the administrator of that server has to explicitly enable support for it, but even then it's not always going to behave exactly the same on all servers.

Also, you probably want to look into WebDAV, it covers this, has good client-side support on all major platforms, and provides a lot more functionality (such as creating directories).

Also of possible interest is the HTTP PATCH request, which lets you upload a patch (in an unspecified format) to modify a resource in-place without having to re-upload the entire resource. Support for that though is even more shoddy than WebDAV or PUT and DELETE.

  • Yes, I'm using cURL quite often (to the point of having written debugging routines which output cURL commands to simulate the software's request). IMHO it's worth learning it even if you prefer a GUI, but I didn't mention it since a GUI was one of the requirements in the question. Still, +1. – Glorfindel May 8 at 6:31
  • @Glorfindel Given my own experience, cURL is on the really short list of things many people are willing to deal with the command-line for simply because it's so insanely flexible (and it does provide some really nice diagnostics and progress info). Were it not for that, I probably wouldn't have suggested it either to be honest. – Austin Hemmelgarn May 8 at 14:24
  • This. Never underestimate the strength of a good command line tool. @Glorfindel besides, some of us think a blinking cursor is a graphical interface :) – ivanivan May 8 at 20:41
  • Was going to recommend curl as well, works fine and doesn't have more crud than necessary – Damon May 10 at 7:45
3

You can use restlet client also, it works on chrome as a extension.

  • Free to some extent.
  • Has open source framework.
  • Support put and other http request.

References:

https://restlet.com/documentation/client/user-guide/introduction

  • 1
    I see it says it's a "powerful while easy to use request editor." Can I use it to, for example, read a file off my hard drive and PUT that to a web URL? Like this I guess, but for a semi-sophisticated user, who might rather use a GUI than the command-line? – ChrisW May 7 at 10:27
  • 1
    I didn't use that to that extent but you can upload file from what I know. – Abhishek Gurjar May 7 at 10:46
  • 1
    Thanks for the suggestion -- it's something to look into. – ChrisW May 7 at 10:50
1

Fiddler (free as in beer) is another tool commonly used for anything related to HTTP, including constructing/executing all kinds of requests. Primary usage is investigating HTTP traffic and testing one-off cases, not the best tool if you want to script some multistep operations (like "grab and upload local file" sample you have).

Note that browsers can execute all kind of requests with JavaScript including PUT and DELETE (See some sample on StackOverflow - How to send a PUT/DELETE request) - so if you have no extra tools you can stick with just browser and its JavaScript (but locations of services would be limited by same origin/CORS policy).

1

If you consider the browser valid for GET and POST, it is also valid for PUT and DELETE. Those are often used by JavaScript applications running in the browser to modify data on the backend server, e.g. when you place or update a comment

  • 1
    In this question I was looking for an application which could be used (without programming) by a non-technical end-user -- not used by a JavaScript application. – ChrisW May 10 at 4:32
  • @ChrisW While many seemed to have guessed so, I think the question does not make that clear. To me it reads as you looking for some software that supports all HTTP methods and you guess what kind of software it might be... so maybe make the question more concrete for future readers to get what it's asking for. – Frank Hopkins May 10 at 9:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.