发信人: crazyjava() 
整理人: (1999-11-10 08:57:37), 站内信件
 | 
 
 
【 以下文字转载自 SystemAnalysis 讨论区 】 【 原文由 骄傲的中国人 所发表 】 CGI
 
 A second, very popular way of communicating over a computer 
 network(possibly the most popular way), is via CGI. CGI is 
 a way to program your Web server so that it can offer more 
 than the static form of HTML documents. When a client requests 
 a CGI page, the server runs a program (identified by a special 
 from of URL) that builds an HTML page on the fly. The server 
 then transmits page can perform a simple computation, access 
 a database, access another host, or do almost anything 
 necessary to acquire the data it includes in the requested 
 page.
 
 The handy thing about CGI is that it is supported by every Web
 browser and essentially every Web server. 
 
 Despite its ease of use and popularity, however, CGI has some 
 serious drawbacks:
 1) CGI is slow. Tests reported by Orfali and Harkey(my teachers), 
    leading authorities on client-server computing, show that CGI 
    is about 200 times slower than IIOP.
 2) CGI can compromise server security. CGI is a jerrybuilt 
    extension to Web servers. Many sites have been compromised 
    by hackers who have exploited weaknesses arising from the 
    inadequate integration between a Web server and the CGI 
    programs it spawns.
 3) CGI cannot store state information. HTTP is a stateless 
    protocol. This means that Web browsers (and other HTTP 
    clients) are connected to Web servers only for the duration 
    of a single request. A browser cannot ask the server to 
    remember who it is, or anything about its previous requests. 
    The client must store this information and re-transmit it 
    with any request that needs it.
 
 The Servlet Alternative
 
 The limitation of CGI architecture led Sun to introduce its 
 own alternative based on Java, the JavaServer architecture. 
 JavaServer introduces the servlet, which is a java program 
 that in many ways resembles an applet, but that runs on the 
 server rather than on the client. Clients can request that 
 servlets be started and can obtain results produced by 
 servlets. Like client-side applets, servlets run under control 
 of a security manager that monitors their artivities, preventing 
 them from performing actions that might threaten system security. 
 Moreover, servlets, though they are written in Java, run more 
 effeiciently than CGI scripts. 
 
 Because servlets are written in Java, they can invoke any of 
 Java's APIs or facilites. Thus, for example, a servlet could 
 use RMI to comminicate with a second rmote server, or with the 
 originally requesting client. This chameleon characteristic 
 makes it difficult to anticipate the typical ways in which 
 servlets may someday come to be used, if they gain a permanent 
 foothold in the computing marketplace.
 
 When might you choose to use CGI as a means of communicating 
 with a remote server? If performance is not a major concern 
 and you're concern with providing access to a wide variety of 
 clients (for example, the public), then CGI has important 
 strenghts. If, on the other hand, your are creating applications 
 that will be confined to your own organization, some other 
 approach will probably serve you better. Servlets are an 
 interesting alternative because they provide the same strength 
 as CGI with fewer drawbacks.
 
 /Crazyjava
  -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 修改:.crazyjava 于 Jul 30 17:04:06 修改本文.[FROM: 139.87.93.173] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.173] -- ※ 转载:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.173]
  | 
 
 
 |