Debug dell'upload di file / upload multipart e altre richieste HTTP

A volte si vuole vedere la richiesta come viene ricevuta dal server, senza alcuna manipolazione / oscuramento della richiesta originale.

Per esempio, per vedere se i diversi browser gestiscono diversamente l'upload dei file.

D'altra parte, non si vuole scrivere il proprio server di mockup, solo per gestire queste richieste, o installare un software complicato.

Sfortunatamente netcat non lo farà senza un ulteriore wrapping in uno script bash. Perciò sono andato a cercare qualcos'altro!

Docker http request echo container

C'è un contenitore Docker, che permette di fare l'eco dei dati della richiesta come JSON. È molto utile per il debug:

https://github.com/mendhak/docker-http-https-echo

Accetta anche messaggi POST.

Installazione

docker run -p 8080:80 -p 8443:443 -rm -t mendhak/http-https-echo

Esempio

Ecco una risposta a un esempio di richiesta di caricamento.

Notate il Content-Disposition e i limiti nel corpo della richiesta.

La richiesta è stata fatta usando Internet Explorer 7 su un Windows XP (macchina virtuale).

immagine

e un altro screenshot che mostra una semplice richiesta di get (da Windows 8.1):

immagine

----------7e33ca16100d0\r\nContent-Disposition: form-data; name="fileToUpload"; filename="C:\Documents and Settings\Administrator\Desktop\Test\blue.jpg"\rnContent-Type: image/pjpeg\rn\rn����\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000H\u0000H\u0000\u0000��u0000>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default

(...)

\u0000��� \r\n----------7e33ca16100d0\r\nContent-Disposition: form-data; name="submit"\r\n\r\nUpload Image\r\n----------7e33ca16100d0-r\n',

Come ottenere Windows XP e IE 7

Microsoft aveva una macchina virtuale per testare la compatibilità dei siti web con IE 7. Ora non c'è più, purtroppo.

C'è comunque una possibilità di ottenere Windows XP direttamente da Microsoft (estraendo un'immagine virtuale dalla modalità XP per Windows 7):

https://parsiya.net/blog/2017-12-19-windows-xp-32-bit-sp3-virtual-machines/

Funzionerà per 30 giorni.

E puoi ottenere il download per Internet Explorer 7 qui:

http://download.microsoft.com/download/3/8/8/38889dc1-848c-4bf2-8335-86c573ad86d9/IE7-WindowsXP-x86-enu.exe

(estratto da questo script: https://raw.githubusercontent.com/xdissent/ievms/master/ievms.sh )