Travaux Pratiques - Utilisation des commandes http GET et HEAD
Suite de la découverte de la bsdsocket.library
l'url http://aminet.net/driver/other/anaiis.readme
devra être décomposée en
aminet.net 80 /driver/other/anaiis.readme
Allons-y !
wget aminet.net 80 /driver/other/anaiis.readme
HTTP/1.1 302 Moved Temporarily Server: Apache Location: http://de4.aminet.net/driver/other/anaiis.readme Vary: Accept-Encoding Content-Type: text/html Cache-Control: public Date: Mon, 13 Aug 2018 09:54:15 GMT X-Varnish: 434531956 434531927 Age: 24 Via: 1.1 varnish Connection: closeCompte rendu 302, le fichier attendu ne se trouve pas sur la machine aminet mais sur une machine miroir de4.aminet.net ... (certaines fois, c'est sur se.aminet.net...) Qu'à cela ne tienne, essayons avec cette machine miroir !
HTTP/1.1 200 OK Date: Mon, 13 Aug 2018 09:56:56 GMT Server: Apache/2.4.25 (Debian) Last-Modified: Thu, 01 Jun 2017 04:09:29 GMT ETag: "3401-550de34011040" Accept-Ranges: bytes Content-Length: 13313 Connection: close Short: ANAIIS USB Stack Release 1.12 Author: Gilles Pelletier Uploader: gilles pelletier live fr (Gilles Pelletier) Type: driver/other Version: 1.12 (31-May-2017) Requires: Highway or Subway from E3B or another supported usb hardware Architecture: m68k-amigaos Introduction ~~~~~~~~~~~~ ANAIIS, acronym for Another Native Amiga IO Interface Stack, is a software solution that brings the possibilities of the Universal Serial Bus (USB) to the old vintage Amiga, with 68000 at 7.09MHz, and the ZorroII card Highway or clockport Subway from E3B. At minimum, you need: - an Amiga 68000 at 7.09MHz (PAL or 7.16MHz in NTSC ;) ) - a Highway or a Subway card - some RAM (70 Ko for a mouse and a keyboard) - should operate from WB1.1 to AmigaOS4.0 (680x0 cpu required). ANAIIS, Another acronym with hidden parts: Native because it is all written in C language (some parts are in Assembly). Amiga because this computer worths this kind of program. Input/Output because it works for mice, keyboards, thumbs and printers. Interface because it translates usb transactions into Intuition events. Stack because this kind of program is called like that. ANAIIS controls internaly : - (9,0,0) alias hub - (3,1,1) alias keyboard (boot keyboard) - (3,1,2) alias mouse (boot mouse) and externaly: - (7,1,1), (7,1,2) alias printer (uni and bi-directional) - (8,6,80) alias massstorage (bulk only with embedded scsi commands) SATA disk, sticks, keys, thumbs, card readers... - (3,0,0) vendor=0x044f 1103 product=0xb320 45856 ThrustMaster (joypad with rumble) - all external program by using a Sirion like API. - like pl2303 vendor=0x067b 1659 product=0x2303 8963... A little graphic user interface is given to control the stack. You can also control it via CLI commands: usbstart, usbreset, usbstop. You can send files to printer with the usbprintcommand. A redirection helper translates parallel.device unit 0 into ieee1284.device. You only need a compatible printer driver to print via standard system. (i.e. Deskjet560C for HPSC2210, or a PCL compatible driver) External programs can be used with ANAIIS stack, such HID (extra buttons), ThrustMaster (joystick with rumble) and massive (keys with (8,6,80) interface). These programs are not delivered with this package. For games, demos or some tools, you must keep original mouse and keyboard. ANAIIS translates usb transactions into system events, so programs that use hardware directly won't work. ANAIIS is not yet resident and doesn't survive at boot time. Tested with success with Brilliance, Deluxe Paint, Aegis Sonix, Ced (I wrote this text with it :) ) most of well written Workbench tools. The Settlers, Indy4 (and the fate of Atlantis) work fine... It is possible to plug and unplug devices without reseting the stack. But be careful with disks. Requirement & Installation ~~~~~~~~~~~~~~~~~~~~~~~~~~ See Install.readme file. Future ~~~~~~ - Make this stuff romable, or reset proof. - Internal drivers support. - Reduce code size, suppress debug data. - Improve gui. - Improve speed and reactivity. Known Bugs ~~~~~~~~~~ - crash on 68000 + ucode and utf_8 catalogs Steps ~~~~~ V1.12 14-May-2017 Fix FFS unmount 11-Apr-2017 remove unused strings resident 80368 -> 61496 bytes usbstart 79844 -> 61708 bytes 26-Mar-2017 try to mount an already mounted partition (by changing the first letter) 20-Mar-2017 Bump rev V1.11 09-Mar-2016 ObtainSemaphoreShared and AttemptSemaphoreShared 05-Mar-2016 Save prefs guru fixed 03-Mar-2016 Load usbhcd in a more compatible way... 03-Feb-2016 cli window still open on WB 1.x 20-Mar-2015 Tests 01-Jan-2015 Issues... 30-Dec-2014 Unmount issues... 29-Dec-2014 Bump rev V1.10 10-Feb-2014 Add XSurf (0x1212:0x0017) clockport(s) detection 08-Jan-2014 Fix internal function pointers 21-Dec-2013 Expansion.library 09-Dec-2013 Fix issue with input and lowlevel.library (right and left click) 08-Dec-2013 Bump rev V1.09 10-Oct-2013 Reset proof ! 29-Sep-2013 Tests 26-Sep-2013 Fix info_13 (unit name and volume name) 25-Sep-2013 Fix colors for 2.04 and menus 21-Sep-2013 Fix massive for 1.2 (mount DOS) 19-Sep-2013 Bump rev V1.08 06-Apr-2013 Fix reset for Highway (sometimes don't start) Add usbctrl command (usbctrl start will launch anaiisresident.library) 24-Mar-2013 Lights numlock led at start (keyboard) 18-Feb-2013 Fix USBEPGetDescriptor 11-Feb-2013 Wheel up and wheel down are inverted 04-Feb-2013 Bump rev V1.07 02-Feb-2013 Function Driver names Advanced mode... 27-Jan-2013 Cosmetic changes Add libusbx support for WinUAE/Windows 12-Jan-2013 Fix iConfig and iInterface unicode strings 05-Jan-2013 Add usbctrl command (usbstop and usbreset in a single command) 02-Jan-2013 Remove the spanish catalog (after a complaint to the Aminet administrator) Lo siento por las pequeñas y los pequeños usuarios de ANAIIS. Para consolarla, le añadí otros idiomas. Be careful 'Advanced mode' freeze all stuff... you have been warned 27-Dec-2012 Fix guru 4 (deluxe paint IV, about...) 16-Dec-2012 Ajust enumeration timing (too fast now) 15-Dec-2012 Rewrite all core for Subway in 680x0 assembly 08-Dec-2012 Rewrite all core for Highway in 680x0 assembly Remove some unused functions Bump rev V1.06 11-Nov-2012 Fix issues with PFS3 all in one. 16-Oct-2012 Add utf_8 and compose for ucode. 08-Oct-2012 Swap alt and amiga keys Add anaiis.cd for the brave translators :) 22-Sep-2012 Add catalogs (with translation bugs... :) ) 15-Sep-2012 Avail flush can remove anaiis libraries (it's bad!) 18-Aug-2012 Add install menu 05-Aug-2012 Bump rev 18-Jul-2012 Add libusb support for WinUAE V1.05 28-May-2012 Fix Massive detection delay. Now massive can be launched before the stack 27-May-2012 Fix Highway and subway detection 20-May-2012 Open icon.library only when it's necessary 15-Apr-2012 Fix delay recovery into massive 13-Apr-2012 Fix lowlevel into input stuff 04-Mar-2012 Test program for lowlevel_ext (rumble) 21-Feb-2012 info_13 for c:info replacement V1.04 18-Feb-2012 Fix SetAddress (gimme more chance) 16-Feb-2012 Fix hub display on gui (spaghetti form...) 14-Feb-2012 Fix Massive 29-Jan-2012 Cosmetic changes on interfaces (info & detach) 25-Jan-2012 Fix potential bug on windows 24-Jan-2012 Fix notifications (bad message) 08-Jan-2012 Fix Mount/Unmount with WB1.3 04-Jan-2012 Subway detection at 0x00d80001, 0x00d90001 (A604) 01-Jan-2012 Fix hasardeous thing with timeout/partial BULK IN request Bump rev V1.03 25-Dec-2011 PTP don't work at all... 11-Dec-2011 Fix Taskpri (now, mouse and massstorage can mix transactions) 28-Nov-2011 Fix DumpX gui (edit/cursor/save/tests) 26-Nov-2011 Fix (BULK IN/BULK OUT/INT) thumbs. 19-Nov-2011 Ignore automount set to false partitions 11-Nov-2011 Command line for massive was disabled... 09-Nov-2011 Add a semaphore in massive, to prevent damages. 06-Nov-2011 NAK issue (not an error, but normal busy device) 19-Oct-2011 MaxTransfer and Mask. Wait delay. V1.02 28-Sep-2011 Detach notification from GUI 22-Sep-2011 USBGetStackAttrs was wrong (A0 instead A1) 24-Aug-2011 Add SFS... (not working with 68000) 02-Aug-2011 Add RDB partition decoding and mount/unmount 26-Jul-2011 Fix usbscsi.device and FFS crashes 17-Jul-2011 Cosmetics in DumpX V1.01 15-May-2011 Fix Massive, mount goes nearly fine 14-May-2011 Changes in uhc124 core 15-Apr-2011 Fix Function and Interface dependence (claim & declaim) 08-Apr-2011 Fix Massive 4GB startup (sometimes fails) Add menus in DumpX. 29-Mar-2011 Add 64 bit routines (Add, Sub, LShift, RShift, Divu, Mulu). V1.00 18-Mar-2011 Fix Anaiis hangup (notify never removed) Fix ieee1284.device, now it prints! Fix Massive, now all keys should work (up to 4GB) Be patient, a 4GB key takes 5 minutes to mount ;(, but after, you can copy! (fat95 limitation?) Bump rev V0.99 07-Mar-2011 Fix port 4 detection, fix grap of hubs removal Massive can mount/unmount devices and the speed has passed from 3500B/s to 6500B/s Too lazy to bump the revision ;) 06-Feb-2011 Massive ! 09-Jan-2011 Fix speed issue (keyboard wont SetAddress). 17-Nov-2010 Stack issue (CLI only, set stack 8000 before launching). 02-Nov-2010 Cosmetics in GUI. 14-May-2010 GUI now works with WB1.1. 11-Apr-2010 Mighty crash when closing fixed. 23-Mar-2010 GUI improvement (fusion of usbstat + anaiis) 07-Mar-2010 Remove all demo code (all is in demo.usbhcd now) 27-Feb-2010 DoIO for usbhcd interface. 21-Feb-2010 Reduce code, Anaiis gui goes from usbstat now 18-Feb-2010 Can load external drivers (#?.hcd or #?.usbhcd) 04-Feb-2010 Bump rev V0.98 15-Oct-2009 registers everywhere (Thanks Cosmos) 15-Jun-2009 GUI improvement (sliders + values) 22-Apr-2009 playHID improvement (HID decoding!? still in progress...) 18-Mar-2009 playHID fixes, hope it works better (Thanks Cammy) 15-Mar-2009 usbstat fixes (Thanks Raziel for testing it on OS4.1) 13-Mar-2009 Localization in french (the file was missing...) 22-Feb-2009 Bump rev, plug and unplug working fine with notification. V0.97 15-Feb-2009 Fix lowlevel.library keyboard, dead keys. 07-Feb-2009 Fix some desastrous bugs in 1.1 and 1.3 Fix USBEPGetDescriptorA 05-Feb-2009 anaiisprivate.library 21-Dec-2008 ieee1284.device is now fully compliant with USBSysBase. 14-Dec-2008 Safer traces (remove references to DOSBase, simple tasks like devices don't call DOSBase API) 30-Nov-2008 Less size. 20-Nov-2008 Keyboard led report and printing are now working correctly. capslock, numlock, scrolllock=>help. 11-Nov-2008 Remove maybe hub crashes, now build complete interfaces. 31-Oct-2008 Remove possible endless wait (speed up the mouse!). 20-Oct-2008 Notification now working. 05-Oct-2008 usbresource.library or anaiisresource.library. 21-Sep-2008 Add semaphore protection, printing is desactivated. 18-Sep-2008 Early version... 26-Jul-2008 Cosmetic changes 20-Apr-2008 Localization 15-Mar-2008 PANDORA (usbsys.device or anaiis.device) 14-Feb-2008 Boost core code (registers use, global optimizer) Device vector is now anaiis.device. V0.96 10-Feb-2008 Fix Highway ugly bug, due to a wrong and looooong code generation. Silly compiler and lazy coder... 21-Jan-2008 OS4.0 Mousewheel? what!? Yes for Subway and OS4.O under 68000 emulation. Core modification, standard message structure for future use. V0.95 13-Jan-2008 Add Host+manufacturer+product+offset for clockport base address. V0.94 23-Dec-2007 Fix Subway detection that sometimes fails. Many thanks for the brave beta testers! 18-Dec-2007 some little GUI improvement. V0.93 15-Dec-2007 Subway now works with ANAIIS! 12-Dec-2007 Merge code for Highway and Subway. 02-Dec-2007 Printing doesn't work... V0.92 18-Nov-2007 Most hub will work now. I have implemented 2.0 mode, but old 1.1 style doesn't work. Now it fixed. 23-May-2007 Additional code to simply manage mousewheel. ANAIIS will send 0x7a for up, 0x7b for down, 0x7c for left and 0x7d for right, as keyboard events. Strange for a mouse! Strange multiselection: Qualifiers key was wrong on repeat state, but good on key up and key down. I use inputdev tool (Robert A. Peck 1985) to check that. Now you can move cursor with keyboard keys: lalt+window key = lalt+lamiga = left click. ralt+context menu = ralt+ramiga = right click. window key+cursor up = lamiga+up = mouse move up. window key+cursor down = lamiga+down = mouse move down. window key+cursor left = lamiga+left = mouse move left. window key+cursor right = lamiga+right = mouse move right. V0.91 13-May-2007 WB1.3: suppress ugly console windows. V0.90 09-May-2007 First working release. V0.10 10-Jun-2006 Mouse!! Contact address ~~~~~~~~~~~~~~~ Any mail, comments, suggestions, documentations are welcome! Please send a mail with the title "ANAIIS" at the following mail address gilles dot pelletier at live dot fr Enjoy USB on old classic Amiga. And remember: Only Amiga makes it possible!
Bingo! compte-rendu 200, c'est OK, avec le contenu du fichier anaiis.readme
La ligne Last-Modified: Thu, 01 Jun 2017 04:09:29 GMT indique la date de mise à jour sur le serveur.
Cette date sera très importante si l'on veut faire un outil de mise à jour de composants depuis aminet.
On va modifier le programme wget en whead en remplaçant la commande http GET par HEAD.
On recommence avec whead...HTTP/1.1 302 Moved Temporarily Server: Apache Location: http://de4.aminet.net/driver/other/anaiis.readme Vary: Accept-Encoding Content-Type: text/html Cache-Control: public Date: Thu, 06 Sep 2018 18:39:05 GMT X-Varnish: 444057747 Age: 0 Via: 1.1 varnish Connection: closeErreur 302, on regarde Location: et on réessaie avec cette adresse.
HTTP/1.1 200 OK Date: Thu, 06 Sep 2018 18:40:37 GMT Server: Apache/2.4.25 (Debian) Last-Modified: Thu, 01 Jun 2017 04:09:29 GMT ETag: "3401-550de34011040" Accept-Ranges: bytes Content-Length: 13313 Connection: closeOn a juste récupéré l'entête sans ramener les 13Ko du fichier entier, et il n'a pas bougé depuis le 1 juin 2017, date de son acceptation sur le site (ce n'est pas la date de dépôt dans new!)
Conclusion
On va pouvoir jouer avec les commandes HEAD pour trouver l'emplacement exact d'un fichier (d'une ressource plus exactement) sur une machine distante et le télécharger avec la commande GET.