Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Emner
  • Opret bruger
  • Log ind
Se kommentarer (8)
Emner Web-services, Udviklingsværktøjer

User-Agent: vim

Af Peter Makholm 18. september 2008 kl. 09:11

Den første store browser var Mosaic, dernæst kom Netscape og Internet Explorer. Netscape blev til Mozilla, blev til Firefox, blev til Iceweasel og endelig kom Google Chrome. Min nyeste HTTP-client hedder vim - ja, gode gamle vim.

Selvfølgelig har jeg ikke erstattet min grafiske browser med vim, men det er blevet er fast værktøj til at debugge servere for HTTP-baserede protokoller. I gamle dage kunne man bare telnet'e til serverens port 80, skrive sin ret enkle HTTP-forspørgsel og så vente på svaret.

Men alt det her nymodens XML over HTTP, keep-alive og pipelining bliver det så pokkers svært. Alene det at skrive XML i hånden og uden gode redigeringsmuligheder er svært nok, men med keep-alive skal man også på forhånd bestemme sig for hvor mange bytes ens XML kommer til at fylde.

Måske kan man vælge at kaste en masse smarte værktøjer til at genrere HTTP-forspørgsler efter problemet, men helt lav-teknologisk har jeg valgt at bruge min editor og en række filer med basis-forspørgsler. Så kan jeg let hente en forspørgsel ind og rette den til. Tilbage er der så at opdatere Content-Length headeren (i vim: marker kroppen med 'v' og tryk ':wc -c' og undo) og endelig sende forspørgslen til serveren (i vim: ':%!nc 192.168.42.42 80') og så vent på at indholdet i editoren bliver erstattet med svaret.

Næste skridt bliver lige at lave 5 linjer perl der selv opdaterer Content-Length istedet for at jeg skal gøre det i hånden. Har I nogle smartere løsninger?

Send Tweet
Udskriv
Billede af Peter MakholmOm Peter Makholm

Kommentarer (8)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Søren Hilmer 18. sep. 2008 - 11.27
 
Chunking

Hvad med at benytte chunking og så glemme content-length

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Søren Hilmer 18. sep. 2008 - 11.34
 
Re: Chunking

Doh, man skal jo have længden af hver chunk.
Men i HTTP 1.0 tillod man at undlade Content-Length og så læstes der til eof. Så det kunne måske lade sig gøre.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Joakim Recht 18. sep. 2008 - 12.33
 
curl

Jeg plejer at bruge curl til den slags - den beregner selv Content-Length når du laver et POST request.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Makholms billede
Peter Makholm 18. sep. 2008 - 14.11
 
Re: curl

Ja, curl vil kunne give en Content-Length, men resten kommer let til at være mere besværligt. Følgende er eksemplet i afsnit 9.1.5 af WebDAV-standarden (RFC4918) udsat for curl:

[code=bash]curl -X PROPFIND http://localhost:8080/container/ -H 'Depth: 1' -H 'Content-Type: application/xml; charset="utf-8"' -H 'Host: example.com' --data '<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:allprop/>
</D:propfind>'[/code]

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Christian Schmidts billede
Christian Schmidt 18. sep. 2008 - 19.34
 
Content-Length

I det omfang, at det er XML, man har behov for at POSTe, så kan man klare sig nødtørftigt ved at sætte Content-Length tilpas højt og så smide mellemrum til overflod i bunden af forespørgslen.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Mogensen 18. sep. 2008 - 21.28
 
C-u M-|

Kan Emacs shell-command-on-region ikke gøre det samme for dig.
Content-lenght plejer jeg blot at sætte Perl til at beregne.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Makholms billede
Peter Makholm 19. sep. 2008 - 08.33
 
Re: C-u M-|

Det ville undre mig meget om ikke Emacs havde passende funktioenr der kunne gøre det samme. Alt der skal til er jo bare at filtrere teksten gennem et eksternt program (her netcat).

Men lige hvilken funktion eller hvilken obskur tastekombination den er bundet til som standard har jeg ingen anelse om.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Peter Mogensen 19. sep. 2008 - 11.04
 
Re: C-u M-|

Det ved du så nu :)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

It skal spare kommunerne for 165 millioner kroner i 2012

Udgivet 9. feb 16.02Opdateret 9. feb 16.02

Adobe: Vi laver ikke Flash til Android-udgaven af Chrome

Udgivet 9. feb 15.15Opdateret 9. feb 15.15

Så oldnordisk er politiets it-miljø: Nostalgisk gensyn med 1980’erne

Udgivet 9. feb 14.22Opdateret 9. feb 15.12

EMC lægger flash-cache på PCIe-kort: 4.000 gange hurtigere end harddiske

Udgivet 9. feb 13.39Opdateret 9. feb 13.39

Egedal Kommune sparer 100.000 om året med open source-CMS

Udgivet 9. feb 12.56Opdateret 9. feb 12.56
Flere it-nyheder »
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Seneste debat

  1. Stop SOPA, PIPA, ACTA, TPP og alle dem der kommer efter

    50 comments.
    Last update 4 timer 12 minutter
    Skrevet af Bjarne W. B. Petersen
  2. Opdateret liste over danske iværksættere

    1 comment.
    Last update 4 timer 15 minutter
    Skrevet af Mikkel Høgh
  3. Derfor bliver dårlige it-projekter ikke stoppet i tide

    1 comment.
    Last update 4 timer 36 minutter
    Skrevet af Kasper Jørgensen
  4. Grotesk jobinterview i 2007: »Tag ikke jobbet, vi får alligevel aldrig Polsag til at virke«

    17 comments.
    Last update 4 timer 44 minutter
    Skrevet af Claus Waldersdorff Knudsen
  5. Så oldnordisk er politiets it-miljø: Nostalgisk gensyn med 1980’erne

    6 comments.
    Last update 4 timer 46 minutter
    Skrevet af Simon Justesen
  6. Domæne-forening: Lov om .aarhus og .cph var for tynd

    9 comments.
    Last update 5 timer 37 minutter
    Skrevet af Jarle Knudsen
  7. ACTA er i orden!

    51 comments.
    Last update 8 timer 10 minutter
    Skrevet af Jarle Knudsen
  8. It-advokat: Nu går grænsebommene ned over internettet

    10 comments.
    Last update 9 timer 56 minutter
    Skrevet af Niels Elgaard Larsen
Mere debat »

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Digitaliseringsstyrelsen
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300