AI Summary
[DOCUMENT_TYPE: user_assignment]
**What This Document Is**
This document outlines Project 1 for COM SCI 118, Computer Network Fundamentals, at UCLA. It’s a practical, hands-on assignment focused on building a foundational understanding of how the web operates at a lower level. Students will engage in developing a concurrent web server utilizing BSD sockets and the C/C++ programming language. The project is divided into distinct parts, building in complexity from initial request observation to full request/response implementation.
**Why This Document Matters**
This project is crucial for students seeking to solidify their understanding of network communication principles. It’s particularly beneficial for those wanting to move beyond simply *using* the web and begin to understand its underlying mechanisms. This assignment is designed for students currently enrolled in COM SCI 118, and is best utilized when beginning work on the project itself, as it provides the complete specifications and requirements for successful completion. It will be especially helpful when planning the development process and ensuring all criteria are met.
**Topics Covered**
* HTTP Protocol Fundamentals
* BSD Socket Programming in C/C++
* Concurrent Server Design
* Network Communication Principles
* Request/Response Cycles
* MIME Type Handling
* Web Server Architecture
* Client-Server Interaction
**What This Document Provides**
* Detailed project goals and objectives.
* Specific instructions for setting up the development environment, including recommended operating systems and software.
* A breakdown of the project into manageable parts (Part A and Part B).
* Guidance on testing and verifying the implemented web server.
* Requirements for the final submission, including source code and a project report.
* Information regarding acceptable port number ranges for the server.
* Expectations for content type recognition (HTML, GIF, JPEG).
* Report length guidelines and content expectations.