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

📄 rfc2648.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
        $done .= "$j ";        $l = $j;        $l =~ tr/A-Z/a-z/;        $link=&make_link("$l");        $bib[$i] =~ s/$j/<A HREF="$link">$j<\/A>/g;      }    }    print "<HTML>\n<TITLE>Citation for $urn</TITLE>\n";    print "<BODY>\n";    $link=&make_link("$scheme$value");    print "<H1><A HREF=\"$link\">$scheme$value</A>:</H1>\n";    foreach $i (@bib) {      print "$i\n";    }    print "</BODY>\n</HTML>\n";  } else {    print "Status:  200 OK\r\n";    print "Content-type: text/html\r\n\r\n";    $bib[0] =~ s/^[0-9]*\s*//;    $j=0;    for ($i=0; $i<=$#bib; $i+=1) {      $j += ($bib[$i] =~ s/, "/, <B>"/);      $j += ($bib[$i] =~ s/",/"<\/B>,/);    }    for ($i=0;$i<=$#bib;$i+=1) {Moats                        Informational                      [Page 8]RFC 2648           A URN Namespace for IETF Documents        August 1999      $k=$bib[$i];      while ($k =~ /(fyi\s|std\s|rfc|bcp)([0-9]+)(.*)/i) {        push @ref,"$1$2";        $k=$3;      }      $done="";      foreach $j (@ref) {        next if ($done =~ $j);        $done .= "$j ";        $l = $j;        $l =~ s/\s//g;        $l =~ tr/A-Z/a-z/;        $link=&make_link("$l");        $bib[$i] =~ s/$j/<A HREF="$link">$j<\/A>/g;      }    }    print "<HTML>\n<TITLE>Citation for $urn</TITLE>\n";    print "<BODY>\n";    $link=&make_link("$scheme$value");    print "<H1><A HREF=\"$link\">$scheme$value</A>:</H1>\n";    foreach $i (@bib) {      print "$i\n";    }    print "</BODY>\n</HTML>\n";  }}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: I2C $code</title></head>\n";  print "<BODY>\n";  print "<h1>URN to URC resolution failed for the URN:</h1>\n";  print "<hr><h3>$urn</h3>\n";  print "</body>\n";  print "</html>\n";  exit;Moats                        Informational                      [Page 9]RFC 2648           A URN Namespace for IETF Documents        August 1999};sub resolveid {  my($flag,@bib,$i,$k,$j,$count,@ref);  my($l,$link, $hdr, $done);  my($value) = @_;  my($scheme) = "id";  open(INPUT, "$cite{$scheme}");  while (<INPUT>) {## capture record#    if ($flag == 1 || /^\s+\"/) {      push @bib,$_;      ($hdr = -1, $count = 0, $flag = 1) if (/^\s+\"/);      $count++ if (/^\s+$/);    }    if ($count == 1) {      $hdr = $#bib if ($hdr == -1);    }    if ($count == 2) {      for ($i=0; $i<=$hdr; $i+=1) {            if ($bib[$i] =~ /<(.*)>/) {              $l = $1;              if ($l eq "draft-$value.txt" || $l eq "draft-$value.ps") {                print "Status:  200 OK\r\n";                print "Content-type: text/html\r\n\r\n";                print "<HTML>\n<TITLE>Citation for $urn</TITLE>\n";                print "<BODY>\n";                print "<ahref=\"http://blackhole.vip.att.net/internet-drafts/$l\">$l</a>:\n";                print "<pre>\n";                foreach $i (@bib) {                  print "$i";                }                print "</pre>\n";                print "</BODY>\n</HTML>\n";                exit;              }            }      }      $flag = 0;      @bib = ();    }  }  &urn_error("404 Not Found\n");}Moats                        Informational                     [Page 10]RFC 2648           A URN Namespace for IETF Documents        August 1999A.2 I2L#!/usr/local/bin/perluse strict;## this is a URN 2 URL 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",  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 header(&resolveid($1), exit) if ($urn =~ /urn:ietf:id:(\S+)/i);(&resolverfc($1, $2), exit) if ($urn =~ /urn:ietf:(\w*):(\d*)/i);(&resolvemtg($1, $2), exit) if ($urn =~ /urn:ietf:mtg:(\d*)-(\w*)/i);&urn_error("400 Bad Request\n");sub resolvemtg {  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) {    print "Status:  302 Moved temporarily\n";    print "Location: $link\n";Moats                        Informational                     [Page 11]RFC 2648           A URN Namespace for IETF Documents        August 1999    return;  }  my($link)="$wgpath/$date/$sesnam-minutes-$date.txt";  if (-f $link) {    print "Status:  302 Moved temporarily\n";    print "Location: $link\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 resolverfc {  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($txttry)="/ftp/$pathbase{$scheme}$value.txt";  my($pstry)="/ftp/$pathbase{$scheme}$value.ps";  my($htmltry)="/ftp/$pathbase{$scheme}$value.html";MIME_SWITCH: {    if ($accept =~ /application\/postscript/ && -f $pstry) {      print "Status:  302 Moved temporarily\n";      print "Location: http://$host/$pathbase{$scheme}$value.ps\n\n";      last MIME_SWITCH;    }    if ($accept =~ /text\/html/ && -f $htmltry) {      print "Status:  302 Moved temporarily0;      print "Location: http://$host/$pathbase{$scheme}$value.html\n\n";      last MIME_SWITCH;    }    if ($accept =~ /\*\/\*|text\/plain/ && -f $txttry) {      print "Status:  302 Moved temporarily\n";      print "Location: http://$host/$pathbase{$scheme}$value.txt\n\n";      last MIME_SWITCH;    }    &urn_error("404 Not Found\n");  }}Moats                        Informational                     [Page 12]RFC 2648           A URN Namespace for IETF Documents        August 1999sub 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($scheme) = "id";  my($value) = @_;  $scheme =~ tr/A-Z/a-z/;  &urn_error("404 Not Found\n")if (!defined $pathbase{$scheme});  my($txttry)="/ftp/$pathbase{$scheme}$value.txt";  my($pstry)="/ftp/$pathbase{$scheme}$value.ps";  my($htmltry)="/ftp/$pathbase{$scheme}$value.html";MIME_SWITCH: {    if ($accept =~ /application\/postscript/ && -f $pstry) {      print "Status:  302 Moved temporarily\n";      print "Location: http://$host/$pathbase{$scheme}$value.ps\n\n";      last MIME_SWITCH;    }    if ($accept =~ /text\/html/ && -f $htmltry) {      print "Status:  302 Moved temporarily\n";      print "Location: http://$host/$pathbase{$scheme}$value.html\n\n";      last MIME_SWITCH;    }    if ($accept =~ /\*\/\*|text\/plain/ && -f $txttry) {      print "Status:  302 Moved temporarily\n";      print "Location: http://$host/$pathbase{$scheme}$value.txt\n\n";      last MIME_SWITCH;    }    &urn_error("404 Not Found\n");  }}Moats                        Informational                     [Page 13]RFC 2648           A URN Namespace for IETF Documents        August 1999A.3 I2Ls#!/usr/local/bin/perluse strict;## this is a URN 2 URLs resolver for the ietf namespace#my(@urls);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",  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 header(&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";  if (-f $link) {Moats                        Informational                     [Page 14]RFC 2648           A URN Namespace for IETF Documents        August 1999    $link=~s/^\/ftp\///;    my($ftplink)="ftp://$host/$link";    my($httplink)="http://$host/$link";    my($glink)="gopher://$host:70/0/$link";    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";      print "$ftplink\n";      print "$httplink\n";      print "$glink\n";    }    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";      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;  }  my($link)="$wgpath/$date/$sesnam-minutes-$date.txt";  if (-f $link) {    $link=~s/^\/ftp\///;    my($ftplink)="ftp://$host/$link";    my($httplink)="http://$host/$link";    my($glink)="gopher://$host:70/0/$link";    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";      print "$ftplink\n";      print "$httplink\n";      print "$glink\n";    }    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";Moats                        Informational                     [Page 15]

⌨️ 快捷键说明

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