Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
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 MakholmFollow @pmakholm

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

Yahoos nye browser får uheldig start - lækker eget sikkerhedscertifikat

Udgivet 24. maj 14.52Opdateret 24. maj 14.53

Danske internetudbydere nægter at blokere 12 pokersites

Udgivet 24. maj 13.58Opdateret 24. maj 13.58

Dokumentation: Her er Spillemyndighedens krav - og 12 ulovlige pokersider

Udgivet 24. maj 13.58Opdateret 24. maj 13.58

Ny blog: Offentlige it-projekter set indefra

Udgivet 24. maj 13.19Opdateret 24. maj 13.30

De 170 fyrede hos IBM Danmark får 30.000 kroner i hånden

Udgivet 24. maj 12.19Opdateret 24. maj 12.19

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. Danske internetudbydere nægter at blokere 12 pokersites

    1 comment.
    Last update 41 sekunder
    Skrevet af Kasper Pedersen
  2. ESA arbejder på interplanetarisk internet

    5 comments.
    Last update 1 minut 5 sekunder
    Skrevet af Jarle Knudsen
  3. Jysk hospital bygger eget socialt netværk på Drupal

    2 comments.
    Last update 5 minutter 52 sekunder
    Skrevet af Lars K. Hansen
  4. Oracle tabte, vandt Google Java ?

    14 comments.
    Last update 11 minutter 11 sekunder
    Skrevet af Martin Bøgelund
  5. Dokumentation: Her er Spillemyndighedens krav - og 12 ulovlige pokersider

    2 comments.
    Last update 13 minutter 24 sekunder
    Skrevet af Johnnie Hougaard Nielsen
  6. Fokus på ny model når kravspecifikationen skal vurderes

    1 comment.
    Last update 30 minutter 27 sekunder
    Skrevet af Christian Kirkedal
  7. Kynisk it-guru: »Internettet er basalt set noget lort«

    6 comments.
    Last update 37 minutter 23 sekunder
    Skrevet af Nikolaj Brinch Jørgensen
  8. Meego-afløseren Tizen klar til at tage kampen op med Android

    9 comments.
    Last update 52 minutter 18 sekunder
    Skrevet af Dennis Krøger

Mere debat »

It-virksomheder

Esec
|
ITX
|
ProData Consult
|
Biwise
|
Solitwork A/S
|
Praktisk IT
|
Deltek Danmark
|
Contest
|
solvo it
|
ØBERG Partners
|
Reload!
|
Invokers
 

Information

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

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain 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
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

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