1.A] Define Web Framework? Explain with example of design of a Web application written using the Common Gateway Interface (CGI) standard with its disadvantage.
Answer:-
A web framework is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs.
Web frameworks provide a standard way to build and deploy web applications on the World Wide Web.
Common Gateway Interface (CGI)
The Common Gateway Interface (CGI) is a standard protocol used to enable web servers to execute external programs, typically scripts, and generate web pages dynamically. CGI scripts can be written in various programming languages such as Perl, Python, and C.
Example of Web Application Design Using CGI
Let’s walk through a simple example of a web application using CGI written in Python.
1. Setting Up the Environment
To run a CGI script, you need a web server that supports CGI (like Apache). You also need to place your CGI script in the correct directory (usually cgi-bin
).
2. Writing a Simple CGI Script
Here’s a simple Python script to demonstrate a CGI program:
#!/usr/bin/env python3 import cgi print("Content-Type: text/html\n") print("<html><head>") print("<title>CGI Example</title>") print("</head><body>") print("<h1>CGI Example</h1>") form = cgi.FieldStorage() if "name" in form: name = form["name"].value print(f"<p>Hello, {name}!</p>") else: print(""" <form method="post" action="/cgi-bin/example.py"> <p>Name: <input type="text" name="name"/></p> <p><input type="submit" value="Submit"/></p> </form> """) print("</body></html>")
Explanation of the Script
- Shebang Line:
#!/usr/bin/env python3
tells the server to run this script with Python 3. - Import cgi: Import the
cgi
module to handle form data. - Print Headers:
print("Content-Type: text/html\n")
sends HTTP headers to the client. - HTML Content: The script prints HTML to create a simple web page.
- Form Handling: The script checks if the form was submitted and processes the input.
Disadvantages of CGI
- Performance: Each request spawns a new process. This can be resource-intensive and slow for high-traffic websites.
- Scalability: Handling many concurrent requests is challenging because each request requires a new process.
- Security: Poorly written CGI scripts can introduce security vulnerabilities.
- Maintainability: Large web applications can become difficult to manage and maintain due to scattered script files and lack of structure.