L01-Intro To The Web
L01-Intro To The Web
Mondays cover content that may show up on the midterm and the final.
Wednesdays focus on helping you with understanding the assignments or
the projects
Khai Truong
Professor (2006-present)
Ph.D. in CS from Georgia Institute of Technology
B.Sc. in CmpE from Georgia Institute of Technology
Research interests:
• Human-Computer Interaction (HCI)
• Ubiquitous Computing (Ubicomp)
• Accessibility
• Health & Assistive Technology
http://www.cs.toronto.edu/~khai
Teaching assistants
• Jun Ni (Jenny) Du
• Erica Floreani
• Mohammad (Kian) Kianpisheh
• Elizabeth Li
• Jiankai (Kevin) Pu
• Alireza Shateri
• Yichen Shen
• Zixuan Wan
Topics covered
Static
How the Web Dynamic Interactive Website
Web
works Websites Web pages deployment
pages
Term project
A small and complete Web site
Group project with 4 team members
Split into 3 parts
• P1: Static design (10 % of total grade)
• P2: Backend implementation with Django (10 % of total grade)
• P3: Frontend implementation with JavaScript & React
(20 % of total grade; basic requirements: 15% , extra features: 5%)
Individual assignments
3 assignments designed to help you master materials needed to
complete the project
• A1: Static Web pages (10 % of total grade)
• A2: Server side scripting (10 % of total grade)
• A3: Client side scripting (10 % of total grade)
Midterm exam
50-minute open book test, completed on Feb. 28 during regular
lecture time slot you enrolled in
Will cover content taught prior to reading week
To be completed at home or in lecture room on your own laptop/tablet
with Internet connectivity
(20 % of total grade)
Final exam
3 hour test
Date & time will be scheduled by Arts & Sciences
The final exam format will be online and open book
Will cover all course material, including topics that were tested on the
midterm exam & covered in the assignments
Course materials
Quercus (https://q.utoronto.ca/courses/337266)
• Syllabus
• Lecture slides & exercises
• Assignment handouts
• Project handouts
• Grades
Piazza (https://piazza.com/utoronto.ca/winter2024/csc309)
• Announcements
• Course discussion
• Assignment discussion
Note
A lot of material is covered over 12 weeks
Lectures and tests are focused on knowledge and concepts, with some
simple coding exercises
Project requires self-motivated learning
• Lecture itself is not sufficient to teach every detail of web
programming
• Consult reference manuals
• Search for answers to gaps in your knowledge online
• Complete the assignments for practice
• Ask questions!
Join or lead a Recognized Study Group (RSG)
Last year, over 3000 students joined a
Recognized Study Group (RSG)where they
met friends and reached their study goals
• Meet weekly with up to 8 classmates online
• Review and discuss course material
• Prepare for tests and exams
• Get student advice from upper year mentors
Join an RSG today:
http://uoft.me/recognizedstudygroups
Course policy
Deadlines & late work
All assignments and project milestones must be submitted
electronically and are due at 5:00PM sharp on the date of the
deadline for all students, regardless of when they enroll in the course
Late submissions will not be accepted
Students with diverse learning styles and needs are welcome in this
course.
Accessibility, accommodations & special considerations
Students who have missed class time and/or are experiencing illness or other
emergencies that prevent them from being able to complete homework on time,
or write a test, can request special consideration. You will be required to affirm
that you are abiding by the Code of Behaviour on Academic Matters, in particular,
to be aware that it is an academic offence
to engage in any form of cheating, academic dishonesty or misconduct, fraud or
misrepresentation not herein otherwise described, in order to obtain academic
credit or other academic advantage of any kind
Note: making a request does not guarantee that you will always be granted special
consideration.
a.k.a., the Web
Connects to
IP: 192.168.7.48:5000 IP:
192.168.23.1 192.168.7.48
Contents from the Web is transferred across the Internet via HTTP
(Hypertext Transfer Protocol)
Hypertext Transfer Protocol (HTTP)
A protocol for distributing and accessing hypertext documents
Built on top of TCP/IP
Human readable protocol
HTTP servers typically listen on port 80
https://medium.com/@lokeshchinni123
But actually…
https://medium.com/@lokeshchinni123
HTTP messages
Components of an HTTP Request
● Method: describes what you want to do
● Path: specifies which resource you want to access
● Header: describes various settings and client environment
● Body: additional data to be sent to server
https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages
HTTP methods
POST: Create a new resource
GET: Read information about a resource (most used)
PUT: Replace a resource
PATCH: Modify a resource
DELETE: Delete a resource
URL encoding
● Some characters are not safe in documents where URLs may be used
● Escaped using percent encoding: e.g., space is converted to %20
Domains
IP addresses are hard to remember
Websites might move to new locations
Some Websites may be hosted on multiple physical machines
● Content Delivery Network (CDN)
Domain name
● Maps an easy-to-remember name to IP address(es)
● E.g., www.google.com → 142.251.41.78
Domain name system (DNS)
A collection of mappings from domain names to their IP addresses
https://medium.com/storyblocks-engineering/web-architecture-101-a3224e126947
Summary
Web server listens on a specific port
● Client(s) connect to IP address and port number
DNS translates domain names to IP addresses
● Users can refer to Websites by domain name rather than IP address
HTTP protocol
● Stateless
● Client sends a request and server replies with a response
HTTP response body is usually in HTML format
● Browsers understand this format and renders accordingly
We will learn more about HTML on Wednesday!
Much of this lecture was taken from content previously created by Jack Sun & Kianoosh Abbasi
Reproduction and/or sharing of course materials is prohibited. Course materials include lecture slides, course notes,
assignments, data and documents provided by the instructors. Course materials created by the instructors of this course
are their intellectual properties. They may not be shared, posted, rehosted, sold, or otherwise distributed and/or
modified without expressed permission from the authors. All such reproduction or dissemination is an infringement of
copyright and is prohibited. All rights are reserved by the instructors.