2010-10-24 19 views
14

मैंने छोटे अनुप्रयोगों और परीक्षण कोड के लिए थोड़ा सा पर्ल का उपयोग किया है, लेकिन मैं नेटवर्किंग और सीजीआई के लिए नया हूं।मैं CGI स्क्रिप्ट में अनुरोध के HTTP शीर्षलेख का उपयोग कैसे करूं?

मुझे अनुरोध है कि आप अनुरोध के शीर्षलेख को कैसे बनाएं (CGI.pm का उपयोग करके और हेडर() फ़ंक्शन के परिणाम प्रिंट करना), लेकिन हेडर को भेजे जाने के तरीके के बारे में कोई जानकारी नहीं मिली है मेरी सीजीआई लिपि। क्या कोई मुझे सही दिशा बतला सकता है?

यह इस तरह के अनुरोध से हो सकता है:

curl http://127.0.0.1:80/cgi-bin/headers.cgi -H "HeaderAttribute: value"

उत्तर

1

वे वातावरण चर के रूप में आपूर्ति की कर रहे हैं, इस तरह के

HTTP_HEADERATTRIBUTE=value 

के रूप में आप अपने वेब सर्वर को कॉन्फ़िगर करने के लिए कुछ करना पड़ सकता है हालांकि, इस तरह के एक चर की आपूर्ति करने के लिए।

26

सीजीआई मॉड्यूल एक http() समारोह आप उस उद्देश्य के लिए उपयोग कर सकते हैं:

#!/usr/bin/perl -- 
use strict; 
use warnings; 
use CGI; 

my $q = CGI->new; 
my %headers = map { $_ => $q->http($_) } $q->http(); 

print $q->header('text/plain'); 
print "Got the following headers:\n"; 
for my $header (keys %headers) { 
    print "$header: $headers{$header}\n"; 
} 

इसे आजमाएं; ऊपर मुझे देता है:

$ curl http://localhost/test.cgi -H "HeaderAttribute: value" 
Got the following headers: 
HTTP_HEADERATTRIBUTE: value 
HTTP_ACCEPT: */* 
HTTP_HOST: localhost 
HTTP_USER_AGENT: curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 
+0

उत्कृष्ट सरल उदाहरण, बिल्कुल वही जो मैं उम्मीद कर रहा था। धन्यवाद! – CGInewb

+0

क्या यह आपके प्रश्न का उत्तर देता है, तो? – mfontani

+2

वर्बैटिम हेडर नाम मुद्रित करने का कोई तरीका? यानी 'HTTP_X_SOME_HEADER' के बजाय' x-some-header '? –

5
CGI.pm http() विधि आप HTTP हेडर वातावरण चर से जानकारी प्राप्त कर सकते करने के लिए

इसके अलावा।

तो यदि आप CGI::Minimal जैसे कुछ का उपयोग कर रहे हैं, जिसमें http विधि नहीं है। आप कुछ ऐसा कर सकते हैं:

my $header = 'HTTP_X_REQUESTED_WITH'; 

    if (exists $ENV{$header} && lc $ENV{$header} eq 'xmlhttprequest') { 
    _do_some_ajaxian_stuff(); 
    } 
संबंधित मुद्दे