⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2648.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
RFC 2648           A URN Namespace for IETF Documents        August 1999      print "<h1>URN $urn resolves to the following URLs:</h1>\n";      print "<hr><ul>\n";      print "<a href=\"$ftplink\">$ftplink</a>\n";      print "<a href=\"$httplink\">$httplink</a>\n";      print "<a href=\"$glink\">$glink</a>\n";      print "</UL>\n</body>\n</HTML>\n";    }    return;  }  &urn_error("404 Not Found\n");}sub resolve1 {  my($flag,@bib,$i,$k,$j,$done,@ref);  my($l,$link);  my($scheme, $value) = @_;  $scheme =~ tr/A-Z/a-z/;  &urn_error("404 Not Found\n")if (!defined $pathbase{$scheme});  my($try)="/ftp/$pathbase{$scheme}$value.txt";  if (-f $try) {    push(@urls, "http://$host/$pathbase{$scheme}$value.txt");    push(@urls, "ftp://$host/$pathbase{$scheme}$value.txt");    push(@urls, "gopher://$host:70/0/$pathbase{$scheme}$value.txt");  }  $try="/ftp/$pathbase{$scheme}$value.ps";  if (-f $try) {    push(@urls, "http://$host/$pathbase{$scheme}$value.ps");    push(@urls, "ftp://$host/$pathbase{$scheme}$value.ps");    push(@urls, "gopher://$host:70/0/$pathbase{$scheme}$value.ps");  }  $try="/ftp/$pathbase{$scheme}$value.html";  if (-f $try) {    push(@urls, "http://$host/$pathbase{$scheme}$value.html");    push(@urls, "ftp://$host/$pathbase{$scheme}$value.html");  }  &urn_error("404 Not Found\n") if ($#urls == -1);MIME_SWITCH: {    if ($accept =~ /text\/uri-list/) { #look for text/uri-list,        otherwise text/html      print "Status: 200 OK\n";      print "Content-type: text/uri-list\n\n\n";      print "#$urn\n";      foreach $i (@urls) {        print "$i\n";      }Moats                        Informational                     [Page 16]RFC 2648           A URN Namespace for IETF Documents        August 1999      last MIME_SWITCH;    }    if ($accept =~ /\*\/\*|text\/html/) {      print "Status: 200 OK\n";      print "Content-type: text/html\n\n<HTML>\n";      print "<head><title>URN Resolution: I2Ls</title></head>\n";      print "<BODY>\n";      print "<h1>URN $urn resolves to the following URLs:</h1>\n";      print "<hr><ul>\n";      foreach $i (@urls) {        print "<LI><A HREF=\"$i\">$i</A>\n";      }      print "</UL>\n</body>\n</HTML>\n";      last MIME_SWITCH;    }  }}sub urn_error {  my($code) = @_; #store failure code here...  print "Status: $code";  print "Content-type: text/html\n\n<HTML>\n";  print "<head><title>URN Resolution: I2L $code</title></head>\n";  print "<BODY>\n";  print "<h1>URN to URL resolution failed for the URN:</h1>\n";  print "<hr><h3>$urn</h3>\n";  print "</body>\n";  print "</html>\n";  exit;}sub resolveid {  my($flag,@bib,$i,$k,$j,$done,@ref);  my($l,$link);  my($value) = @_;  my($scheme) = "id";  $scheme =~ tr/A-Z/a-z/;  &urn_error("404 Not Found\n")if (!defined $pathbase{$scheme});  my($try)="/ftp/$pathbase{$scheme}$value.txt";  if (-f $try) {    push(@urls, "http://$host/$pathbase{$scheme}$value.txt");    push(@urls, "ftp://$host/$pathbase{$scheme}$value.txt");    push(@urls, "gopher://$host:70/0/$pathbase{$scheme}$value.txt");  }  $try="/ftp/$pathbase{$scheme}$value.ps";  if (-f $try) {    push(@urls, "http://$host/$pathbase{$scheme}$value.ps");Moats                        Informational                     [Page 17]RFC 2648           A URN Namespace for IETF Documents        August 1999    push(@urls, "ftp://$host/$pathbase{$scheme}$value.ps");    push(@urls, "gopher://$host:70/0/$pathbase{$scheme}$value.ps");  }  $try="/ftp/$pathbase{$scheme}$value.html";  if (-f $try) {    push(@urls, "http://$host/$pathbase{$scheme}$value.html");    push(@urls, "ftp://$host/$pathbase{$scheme}$value.html");  }  &urn_error("404 Not Found\n") if ($#urls == -1);MIME_SWITCH: {    if ($accept =~ /text\/uri-list/) { #look for text/uri-list,        otherwise text/html      print "Status: 200 OK\n";      print "Content-type: text/uri-list\n\n\n";      print "#$urn\n";      foreach $i (@urls) {        print "$i\n";      }      last MIME_SWITCH;    }    if ($accept =~ /\*\/\*|text\/html/) {      print "Status: 200 OK\n";      print "Content-type: text/html\n\n<HTML>\n";      print "<head><title>URN Resolution: I2Ls</title></head>\n";      print "<BODY>\n";      print "<h1>URN $urn resolves to the following URLs:</h1>\n";      print "<hr><ul>\n";      foreach $i (@urls) {        print "<LI><A HREF=\"$i\">$i</A>\n";      }      print "</UL>\n</body>\n</HTML>\n";      last MIME_SWITCH;    }  }}A.4 I2Ns#!/usr/local/bin/perluse strict;## this is a URN 2 URNs resolver for the ietf namespace#Moats                        Informational                     [Page 18]RFC 2648           A URN Namespace for IETF Documents        August 1999my(%cite) = (  rfc => "/ftp/rfc/rfc-index.txt",  fyi => "/ftp/fyi/fyi-index.txt",  std => "/ftp/std/std-index.txt",  bcp => "/ftp/rfc/bcp-index.txt");my(%number2date) = (  44 => "99mar",  43 => "98dec", 42 => "98aug", 41 => "98apr",  40 => "97dec", 39 => "97aug", 38 => "97apr",  37 => "96dec", 36 => "96jun", 35 => "96mar",  34 => "95dec", 33 => "95jul", 32 => "95apr",  31 => "94dec", 30 => "94jul", 29 => "94mar",  28 => "93nov", 27 => "93jul", 26 => "93mar",  25 => "92nov", 24 => "92jul", 23 => "92mar",  22 => "91nov", 21 => "91jul", 20 => "91mar",  19 => "90dec" );my($wgpath) = "/ftp/ietf";my($urn) = $ENV{'QUERY_STRING'};my($host) = $ENV{'SERVER_NAME'}; #get my host name for ftp: URLsmy($port) = $ENV={'SERVER_PORT'};my($accept) = $ENV{'HTTP_ACCEPT'}; #this is the "Accept:" HTTP header(&resolve1($1, $2), exit) if ($urn =~ /urn:ietf:(\w*):(\d*)/i);(&resolve2($1, $2), exit) if ($urn =~ /urn:ietf:mtg:(\d*)-(\w*)/i);&urn_error("400 Bad Request\n");sub resolve2 {  my($ietfnum, $sesnam) = @_;  &urn_error("404 Not Found\n") if (!defined $number2date{$ietfnum});  my($date)=$number2date{$ietfnum};  my($link)="$wgpath/$sesnam/$sesnam-minutes-$date.txt";  if (-f $link) {    if ($accept =~ /text\/uri-list/) {        print "Status: 200 OK\n";        print "Content-type: text/uri-list\n\n\n";        print "#$urn\n";        return;    }    if ($accept =~ /\*\/\*|text]\/html/) {      print "Status: 200 OK\n";      print "Content-type: text/html\n\n<HTML>\n";      print "<head><title>URN Resolution: I2Ns</title></head>\n";      print "<BODY>\n";      print "<h1>URN $urn resolves to the following URNs:</h1>\n";      print "<hr><ul>\n";Moats                        Informational                     [Page 19]RFC 2648           A URN Namespace for IETF Documents        August 1999      print "</UL>\n</body>\n</HTML>\n";      return;    }  }  my($link)="$wgpath/$date/$sesnam-minutes-$date.txt";  if (-f $link) {    if ($accept =~ /text\/uri-list/) {        print "Status: 200 OK\n";        print "Content-type: text/uri-list\n\n\n";        print "#$urn\n";        return;    }    if ($accept =~ /\*\/\*|text\/html/) {        print "Status: 200 OK\n";        print "Content-type: text/html\n\n<HTML>\n";        print "<head><title>URN Resolution: I2Ns</title></head>\n";        print "<BODY>\n";        print "<h1>URN $urn resolves to the following URNs:</h1>\n";        print "<hr><ul>\n";        print "</UL>\n</body>\n</HTML>\n";        return;    }  }  &urn_error("404 Not Found\n");}sub end {  my($inarg)=@_;  return $inarg . "st" if ($inarg =~ /1$/);  return $inarg . "nd" if ($inarg =~ /2$/);  return $inarg . "rd" if ($inarg =~ /3$/);  return $inarg . "th";}sub resolve1 {  my($flag,@bib,$i,$k,$j,$done,@ref);  my($l,$link);  my($scheme, $value) = @_;  $scheme =~ tr/A-Z/a-z/;  if (!defined $cite{$scheme}) {    &urn_error("404 Not Found\n");  }  $flag = 0;  open(INPUT, "$cite{$scheme}");  while (<INPUT>) {    $flag = 1 if (/^0*$value /);    if ($flag == 1) {Moats                        Informational                     [Page 20]RFC 2648           A URN Namespace for IETF Documents        August 1999      last if (/^$/);      chop;      push @bib,$_;    }  }  $k=join " ",@bib;  while ($k =~ /(\S*)\s*(fyi|std|rfc|bcp)\s*([0-9]+)(.*)/i) {    $k=$4;    $a=$2; $b=$3;    if (($a ne $scheme || $b ne $value) && ($1 !~ /obso/i)){      $a =~ tr/A-Z/a-z/;      $b =~ s/^0*//;      push @ref,"urn:ietf:$a:$b";    }  }MIME_SWITCH: {    if ($accept =~ /text\/uri-list/) {        print "Status: 200 OK\n";        print "Content-type: text/uri-list\n\n\n";        print "#$urn\n";        foreach $i (@ref) {            print "$i\n";        }        last MIME_SWITCH;    }  if ($accept =~ /\*\/\*|text\/html/) {    print "Status: 200 OK\n";    print "Content-type: text/html\n\n<HTML>\n";    print "<head><title>URN Resolution: I2Ns</title></head>\n";    print "<BODY>\n";    print "<h1>URN $urn resolves to the following URNs:</h1>\n";    print "<hr><ul>\n";        foreach $i (@ref) {            print "<li>$i: Click to resolve using\n";            print "<ahref=\"http://$host:$port/uri-res/I2C?$i\">I2C</a>,\n";            print "<ahref=\"http://$host:$port/uri-res/I2L?$i\">I2L</a>,\n";            print "<ahref=\"http://$host:$port/uri-res/I2Ls?$i\">I2Ls</a>,\n";            print "<ahref=\"http://$host:$port/uri-res/I2R?$i\">I2R</a>,\n";            print "<ahref=\"http://$host:$port/uri-res/I2Rs?$i\">I2Rs</a>\n";        }    print "</UL>\n</body>\n</HTML>\n";Moats                        Informational                     [Page 21]RFC 2648           A URN Namespace for IETF Documents        August 1999  }}}sub make_link {  my($sc);  my($inarg)=@_;  ($sc=$1) if ($inarg =~ /([a-z]*)/);  return "/$sc/$inarg.ps" if (-e "/ftp/$sc/$inarg.ps");  return "/$sc/$inarg.html" if (-e "/ftp/$sc/$inarg.html");  return "/$sc/$inarg.txt";}sub urn_error {  my($code) = @_; #store failure code here...  print "Status: $code";  print "Content-type: text/html\n\n<HTML>\n";  print "<head><title>URN Resolution: I2Ns $code</title></head>\n";  print "<BODY>\n";  print "<h1>URN to URN resolution failed for the URN:</h1>\n";  print "<hr><h3>$urn</h3>\n";  print "</body>\n";  print "</html>\n";  exit;};A.5 I2R#!/usr/local/bin/perluse strict;## this is a URN 2 resource resolver for the ietf namespace#my(%pathbase) = (  rfc => "rfc/rfc",  fyi => "fyi/fyi",  std => "std/std",  bcp => "bcp/bcp",  id => "internet-drafts/draft-");my(%number2date) = (  44 => "99mar",  43 => "98dec", 42 => "98aug", 41 => "98apr",Moats                        Informational                     [Page 22]RFC 2648           A URN Namespace for IETF Documents        August 1999  40 => "97dec", 39 => "97aug", 38 => "97apr",  37 => "96dec", 36 => "96jun", 35 => "96mar",  34 => "95dec", 33 => "95jul", 32 => "95apr",  31 => "94dec", 30 => "94jul", 29 => "94mar",  28 => "93nov", 27 => "93jul", 26 => "93mar",  25 => "92nov", 24 => "92jul", 23 => "92mar",  22 => "91nov", 21 => "91jul", 20 => "91mar",  19 => "90dec" );my($wgpath) = "/ftp/ietf";my($urn) = $ENV{'QUERY_STRING'};my($host) = $ENV{'SERVER_NAME'}; #get my host name for ftp: URLsmy($accept) = $ENV{'HTTP_ACCEPT'}; #this is the "Accept:" HTTP headerprint "$urn\n";(&resolveid($1), exit) if ($urn =~ /urn:ietf:id:(\S+)/i);(&resolve1($1, $2), exit) if ($urn =~ /urn:ietf:(\w*):(\d*)/i);(&resolve2($1, $2), exit) if ($urn =~ /urn:ietf:mtg:(\d*)-(\w*)/i);&urn_error("400 Bad Request\n");sub resolve2 {  my($ietfnum, $sesnam) = @_;  &urn_error("404 Not Found\n") if (!defined $number2date{$ietfnum});  my($date)=$number2date{$ietfnum};  my($link)="$wgpath/$sesnam/$sesnam-minutes-$date.txt";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -