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

📄 rfc2648.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
  if (-f $link) {      print "Status:  200 OK\n";      print "Content-type: text/plain\n\n";      open(FILE, "$link");      while (<FILE>) {          print $_;      }      close FILE;    return;  }  my($link)="$wgpath/$date/$sesnam-minutes-$date.txt";  if (-f $link) {      print "Status:  200 OK\n";      print "Content-type: text/plain\n\n";      open(FILE, "$link");      while (<FILE>) {          print $_;      }      close FILE;    return;  }  &urn_error("404 Not Found\n");}Moats                        Informational                     [Page 23]RFC 2648           A URN Namespace for IETF Documents        August 1999sub 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/;  &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:  200 OK\n";      print "Content-type: application/postscript\n\n";      open(FILE, "$pstry");      while (<FILE>) {          print $_;      }      close FILE;      last MIME_SWITCH;    }    if ($accept =~ /text\/html/ && -f $htmltry) {        print "Status:  200 OK\n";        print "Content-type: text/html\n\n";        open(FILE, "$htmltry");        while (<FILE>) {            print $_;        }        close FILE;        last MIME_SWITCH;    }    if ($accept =~ /\*\/\*|text\/plain/ && -f $txttry) {        print "Status:  200 OK\n";        print "Content-type: text/plain\n\n";        open(FILE, "$txttry");        while (<FILE>) {            print $_;        }        close FILE;        last MIME_SWITCH;    }Moats                        Informational                     [Page 24]RFC 2648           A URN Namespace for IETF Documents        August 1999    &urn_error("404 Not Found\n");  }}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:  200 OK\n";      print "Content-type: application/postscript\n\n";      open(FILE, "$pstry");      while (<FILE>) {          print $_;      }      close FILE;      last MIME_SWITCH;    }    if ($accept =~ /text\/html/ && -f $htmltry) {        print "Status:  200 OK\n";        print "Content-type: text/html\n\n";        open(FILE, "$htmltry");        while (<FILE>) {            print $_;        }        close FILE;        last MIME_SWITCH;    }    if ($accept =~ /\*\/\*|text\/plain/ && -f $txttry) {        print "Status:  200 OK\n";        print "Content-type: text/plain\n\n";        open(FILE, "$txttry");        while (<FILE>) {            print $_;        }        close FILE;        last MIME_SWITCH;    }    &urn_error("404 Not Found\n");  }}Moats                        Informational                     [Page 25]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: I2R $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;}A.6 I2Rs#!/usr/local/bin/perluse strict;## this is a URN 2 resources 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'};Moats                        Informational                     [Page 26]RFC 2648           A URN Namespace for IETF Documents        August 1999my($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) = @_;  my(@vers,$i);  &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) {      push(@vers,$link);  }  $link="$wgpath/$date/$sesnam-minutes-$date.txt";  if (-f $link) {      push(@vers,$link);  }  &urn_error("404 Not Found\n") if ($#vers==-1);  print "Status: 200 OK\n";  print "Content-type: multipart/alternative; boundary=endpart\n\n";  foreach $i (@vers) {      print "--endpart\n";      if ($i =~ /html$/) {          print "Content-Type: text/html\n\n";      }      if ($i =~ /txt$/) {          print "Content-Type: text/plain\n\n";      }      if ($i =~ /ps$/) {          print "Content-Type: application/postscript\n\n";      }      open(FILE, "$i");      while (<FILE>) {          print "$_";      }      close FILE;  }  print "--endpart\n";}sub resolve1 {  my($flag,@bib,$i,$k,$j,$done,@ref);Moats                        Informational                     [Page 27]RFC 2648           A URN Namespace for IETF Documents        August 1999  my($l,$link,@vers);  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(@vers, $try);  }  $try="/ftp/$pathbase{$scheme}$value.ps";  if (-f $try) {      push(@vers, $try);  }  $try="/ftp/$pathbase{$scheme}$value.html";  if (-f $try) {      push(@vers, $try);  }  print "Status: 200 OK\n";  print "Content-type: multipart/alternative; boundary=endpart\n\n";  foreach $i (@vers) {      print "--endpart\n";      if ($i =~ /html$/) {          print "Content-Type: text/html\n\n";      }      if ($i =~ /txt$/) {          print "Content-Type: text/plain\n\n";      }      if ($i =~ /ps$/) {          print "Content-Type: application/postscript\n\n";      }      open(FILE, "$i");      while (<FILE>) {          print "$_";      }      close FILE;  }  print "--endpart\n";}sub resolveid {  my($flag,@bib,$i,$k,$j,$done,@ref);  my($l,$link,@vers);  my($scheme) = "id";  my($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) {Moats                        Informational                     [Page 28]RFC 2648           A URN Namespace for IETF Documents        August 1999      push(@vers, $try);  }  $try="/ftp/$pathbase{$scheme}$value.ps";  if (-f $try) {      push(@vers, $try);  }  $try="/ftp/$pathbase{$scheme}$value.html";  if (-f $try) {      push(@vers, $try);  }  print "Status: 200 OK\n";  print "Content-type: multipart/alternative; boundary=endpart\n\n";  foreach $i (@vers) {      print "--endpart\n";      if ($i =~ /html$/) {          print "Content-Type: text/html\n\n";      }      if ($i =~ /txt$/) {          print "Content-Type: text/plain\n\n";      }      if ($i =~ /ps$/) {          print "Content-Type: application/postscript\n\n";      }      open(FILE, "$i");      while (<FILE>) {          print "$_";      }      close FILE;  }  print "--endpart\n";}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: I2Rs $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;}Moats                        Informational                     [Page 29]RFC 2648           A URN Namespace for IETF Documents        August 1999Full Copyright Statement   Copyright (C) The Internet Society (1999).  All Rights Reserved.   This document and translations of it may be copied and furnished to   others, and derivative works that comment on or otherwise explain it   or assist in its implementation may be prepared, copied, published   and distributed, in whole or in part, without restriction of any   kind, provided that the above copyright notice and this paragraph are   included on all such copies and derivative works.  However, this   document itself may not be modified in any way, such as by removing   the copyright notice or references to the Internet Society or other   Internet organizations, except as needed for the purpose of   developing Internet standards in which case the procedures for   copyrights defined in the Internet Standards process must be   followed, or as required to translate it into languages other than   English.   The limited permissions granted above are perpetual and will not be   revoked by the Internet Society or its successors or assigns.   This document and the information contained herein is provided on an   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.Acknowledgement   Funding for the RFC Editor function is currently provided by the   Internet Society.Moats                        Informational                     [Page 30]

⌨️ 快捷键说明

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