I klientenden er det tre måter å sende fra seg data på:
Dette er den mest fleksible måten. Den drøftes senere i dette kompendiet.
Dette kan også testes vha. det samme testskriptet som over.
Dette foregår på den måten at man skriver et spørsmålstegn bak siste komponent i URLen og så det man skal sende over av data, men kodet ihht. konvensjonen over.
I skriptenden (serverenden) mottas data litt forskjellig avhengig av om det var GET, ISINDEX eller POST som ble benyttet. Generelt skjer det vha. en kombinasjon av environment variable og evt. standard input. I begge tilfellene sendes dog eventuell ekstra path informasjon gjennom environment variable.
De viktige forskjellene ligger ellers i flg:
Data mottas av server som ``query string'' bak URLen, og sendes videre til skriptet via. environment variablen $QUERY_STRING. Data er fortsatt kodet i denne variabelen.
Data mottas via standard input, og environment variablen $CONTENT_LENGTH angir lengden på datastrømmen. Datastrømmen er ikke terminert med end-of-file merke. I hvert fall kan man ikke forvente det, og utpakkingsskriptene må lages deretter.
Disse to tingene er helt ekvivalente sett fra serveren og derfor også sett fra skriptet. Data sendes fortsatt via $QUERY_STRING, men i tillegg vil data presenteres skriptet i form av kommandolinje argumenter, men da er data ferdig utpakket, ikke kodet!
En full beskrivelse av environment variablene som CGI benytter ligger her.
Alt rundt koding og datatransport demonstreres best ved å prøve skriptet.