HTTP Werkzeug’s future
Redesigning the application
ibnn’s suggestions for my program pose interesting questions about the application. I am myself unhappy with the design, particularly how in Windows it uses several windows (request, transcript and cookies) that cannot be shown and hidden simultaneously.
At some point, and certainly before a rewrite of the application, I will have to decide where the program is destined to go. With close to zero useful feedback (and very little feedback to begin with) I don’t really know how many users I have, or what they do with the program or would like to see it do. Despite the ubiquitous nature of cURL and wget, the fact that HTTP Werkzeug has been available since 2003, and the evidence that people love graphical tools, HTTP Werkzeug is very much disregarded or unknown to people. My assumption can only be that the idea is simply undesirable, since there seem to be no rival applications out there. I have enquired on the cURL e-mail list though.
Something I was thinking about was a more useful content viewer, as follows:
Development builds
Although development is presently stalled, there are development versions of the program in my development builds folder, built for Mac OS 8-9 and X and Windows; there are also older builds in the older builds folder. Nothing in any build is guaranteed to work and there are still plenty of bugs; these are NOT beta builds. There will not be an official beta until I am satisfied that everything works well.
Return to the HTTP Werkzeug pageAnti-changelog
The following represents the feature wishlist for future versions, but generally not including ideas posted to Versiontracker by ibnn, because I don’t understand all of what he wrote yet (I am not clued up on modern Web technology). Hollow bullets indicate changes that had already been made in the old 1.3; solid bullets indicate new ideas. Crossed-out entries are implemented in the 1.2.4 development versions; other features added to 1.2.4 but not originally listed below have not been added.
Questions
- Should the Reset button in custom settings revert to the settings held in the Preferences or (as it does at present) revert to the factory defaults? What does anyone use this button for? (I never use it at all :-)
Features
- HTTP Basic authentication
- Cookies (manual and automatic storage (per-session/persistent) and retrieval; cookie editing; indication of invalid cookies)
- Find (for the Header/Content fields)
- The ability to include line breaks and regular expressions in searches
- Persistent history
- Toolbar (for Refresh/Follow Redirect/View and Accept Cookies/Authenticate)
- Back and Forwards links; the precise functionality of these is not however implicit and presently open to debate before being implemented.
- Save to disc with or without bypassing the output window
- Secure Socket Layer support [REALbasic 2006]
- Auto-complete drop-down menu for the address bar
- Possibly configure, activate and deactivate the Web proxy settings in Internet Config for capture requests (under user control)
- Support for Web proxies (read from Internet Config) for normal Web access
- Support file sends using HTTP POST
- Support more HTTP commands such as PUT
Support talking to Web services via HTTP with XML payload as POST
(whatever this means)- Unicode text support [REALbasic 2006]
- Management of saved, named POST field collections and custom settings
Bug fixes
- Fix the myriad of issues under Windows, for example:
- Name resolution is synchronous in Windows and most toolbar controls disappear during this period;
- Only the first window gets a menu bar;
- Dialog boxes can end up with the transcript window as their parent if it is open;
- Keyboard shortcuts relating to requests don’t activate until the menu bar is visited;
- The transcript window refuses to support styled text or even show the correct font and size sometimes
- DNS lookup failure messages show as connection failure under Windows
Improvements
- Undo for the address bar etc. (Annoyingly, REALbasic 2006 does not support text undo!)
- Proper event hooking for the resource retrieve feature for clean code extension (e.g. for hooking the cookies/auth/toolbar)
- Persistent logging?
- Kill the status bar update flicker using a canvas?
- Memorise (persistently?) dialog box size for resizable dialogs
- Unique window number for new, untitled windows?
- URL encode/decode on POST dialog copy/paste
- Consider how to allow characters like line breaks into HTTP POST, given that the POST dialog does not permit direct entry of
%nn
codes - Have a menu (menu bar or BevelButton pop-up) in the custom settings (née Extended Settings) dialog for adding extra header fields. Selecting a menu item would insert a new line in the extra HTTP box for that header.
- When selecting history items, allow a modifier key to restore not only the address but the custom settings in use. Not sure whether thus the custom settings need to be committed to disc as part of the new persistent history.
- Maybe a graphical editor for User-Agent lines?
- Direct capture of HTTP requests through something like Winpcap or the Mac equivalent that comes with Interarchy; might be hard to do this from REALbasic ;)