World Wide Web
World Wide Web
Introduction
Most web developers like me are interested to learn theory as well as just practical code. I wanted to learn the theories like IANA, RFC, IETF, etc. After I learned this stuff, I decided to share it with you because I know there are too many developers like me who are interested in these basic terms, history, and somehow stories. In this series, we are gonna go to look at how web technology grows over time and also see some sample code. I'm gonna start the first series about World Wide Web. Hope you enjoy it 😊.
Basic concepts
- World Wide Web: an information space in which the items of interest (referred to as resources) are identified by URIs.
- Resource: anything that might be identified by a URI.
- Information resource: a resource which has the property that all of its essential characteristics can be conveyed in a message.
- Uniform Resource Identifier (URI): a global identifier in the context of the Web
- Representation: data that encodes information about resource state.
- Content negotiation: offering multiple representations for a resource and selecting the one that is the most appropriate when a representation must be served.
- Dereferencing a URI: using a URI to access the referenced resource.
- Access may take many forms, including retrieving, adding, or modifying a representation of the resource, and deleting some or all representations of the resource.
- Web agent: a person or a piece of software acting on the Web on behalf of a person, entity, or process.
- for example, a web crawler.
- User agent: One type of Web agent, a piece of software acting on behalf of a person.
- For example, web browser.
Three types of standards
By origin, there are three types of standards:
- De facto standards: arise from common usage or market acceptance.
- Examples: the QWERTY keyboard layout, TeX, PDF (before 2008).
- De jure standards: are mandated by regulators at the local, state, federal, and/or international level.
- Examples: International System of Units (SI), PDF (from 2008).
- Voluntary consensus standards: are specified within a range of private institutions, including engineering societies, trade associations, accredited standards-setting organizations, and industry consortia.
- Examples: the Internet protocol suite (commonly known as TCP/IP), HTML, CSS.
Web Standards
The following organizations are responsible for web standards:
Internet Assigned Numbers Authority (IANA)
Coordinates the allocation of codes and numbers that form the basis for the operation of the Internet. IANA official website.
- Manages the DNS root zone, and the .int and .arpa domains.
- Coordinates the allocation of IP addresses globally.
- Maintains registries of codes and numbers used in a variety of Internet protocols.
- See: Protocol Registries https://www.iana.org protocols
IANA is a function that is currently performed by the Internet Corporation for Assigned Names and Numbers (ICANN), a not-for-profit corporation.
Internet Engineering Task Force (IETF)
An international standards organization developing Internet standards.
- For example, IETF develops the Internet protocol suite (commonly known as TCP/IP).
- The IETF has no formal membership, no membership fee, participation is open to anyone.
- Mailing lists: https://www.ietf.org/list/
- The technical work is done in working groups.
- Publishes Internet standards-related specifications in the RFC series of documents.
Request for Comments (RFC)
The RFC series contains technical and organizational documents about the Internet.
The RFC series of documents began in 1969 as part of ARPANET project.
- The first RFC:
- Steve Crocker, Host Software, RFC 1, 7 April 1969 https://www.rfc-editor.org/info/rfc1
- The first RFC:
RFC Editor edits, publishes, and catalogs RFCs. https://www.rfc-editor.org/
- By origin, the RFC series is split into four streams:
- The Internet Engineering Task Force (IETF) Stream
- The Internet Architecture Board (IAB) Stream
- The Internet Research Task Force (IRTF) Stream
- The Independent Submission Stream
- Each RFC is identified by a number, such as RFC 9110.
- Each RFC is available in ASCII text, such as: https://www.rfc-editor.org/rfc/rfc9110.txt
- The same RFC in HTML: https://www.rfc-editor.org/rfc/rfc9110.html
- The list of all RFCs: https://www.rfc-editor.org/rfc-index.html
- Published RFCs never change.
- Various errors are fixed by errata.
- Amendments can be also made by writing and publishing a revised RFC.
- An RFC can obsolete or update earlier RFCs.
- Example: Hypertext Transfer Protocol – HTTP/1.1
- The series of IETF RFCs contains the following two important sub-series:
- Best Current Practice (BCP):
- BCPs document guidelines, processes, or the operation of the IETF itself.
- BCP Index: https://www.rfc-editor.org/rfc/bcp/
- Internet Standard (STD):
- STD Index: https://www.rfc-editor.org/rfc/std/
- Best Current Practice (BCP):
- BCPs and STDs are assigned a number in their subseries while retaining their RFC number.
- Several RFCs may share the same BCP or STD number.
- For example, an STD number identifies a standard not a document.
- Standards Track: the set of maturity levels of RFCs that are intended to become Internet Standards.
- Originally, three maturity levels were used:
- Proposed Standard
- Draft Standard
- Internet Standard
- Currently, the Proposed Standard and Internet Standard maturity levels are used.
- Originally, three maturity levels were used:
- Internet-Draft: a draft version of a specification made available for informal review and comment during the development.
- May or may not eventually be published as an RFC.
- Is subject to change or removal at any time.
- Is valid for a maximum of six months.
- Should not be cited or quoted in any formal document, except as “work in progress”.
- On nearly every April 1 since 1989, one ore more funny RFCs has been published.
- Example:
- Jogi Hofmueller (ed.), Aaron Bachmann (ed.), IOhannes Zmoelnig (ed.), The Transmission of IP Datagrams over the Semaphore Flag Signaling System (SFSS), RFC 4824, April 1 2007. https://www.rfc-editor.org/info/rfc4824
- See:
- April Fools' Day Request for Comments https://en.wikipedia.org/wiki/April_Fools%27_Day_Request_for_Comments
- Example:
World Wide Web Consortium (W3C)
The W3C is an international community where member organizations, a full-time staff, and the public work together to develop Web standards. [...] W3C's mission is to lead the Web to its full potential.
- See: About W3C https://www.w3.org/Consortium/
W3C publishes documents called Recommendations that define Web technologies and are considered Web standards.
- W3C standards are developed according to the Open Standards Principles.
- See: W3C Mission https://www.w3.org/Consortium/mission
- See: Standards FAQ – What does Web standard mean? What is a Recommendation? https://www.w3.org/standards/faq#std
Web for All: the Web must be available to all people, whatever their hardware, software, network infrastructure, native language, culture, geographical location, or physical or mental ability.
- Related concepts: web accessibility, internationalization
Web on Everything: the Web must be accessible from a wide variety of devices.
- E.g., mobile phones, smart phones, PDA devices, domestic appliances, ...
Maturity Levels of W3C Technical Reports
Working draft (WD): a document that is published for review by the community, including W3C members, the public, and other technical organizations.
- Some, but not all, Working Drafts are meant to advance to Recommendation.
Candidate Recommendation (CR): a document that has already received wide review and is published to gather implementation experience. Proposed Recommendation (PR): a document that is of sufficient quality to become a Recommendation. Recommendation (REC): a Web standard suitable for wide adoption. Group Note (NOTE): a document that is not intended to be a formal standard.
- Are published to document information other than technical specifications, such as use cases motivating a specification and best practices for its use.
A recommendation may become superseded or obsolete:
Superseded Recommendation: a specification that has been replaced by a newer version.
- Example:
- XHTML 1.0 The Extensible HyperText Markup Language (Second Edition) https://www.w3.org/TR/xhtml1/
- Example:
Obsolete Recommendation: a specification that the W3C has determined lacks sufficient market relevance to continue recommending it for implementation.
- Example:
- The 'view-mode' Media Feature https://www.w3.org/TR/view-mode
- Example:
WHATWG
Web Hypertext Application Technology Working Group (WHATWG) https://whatwg.org/
- A community committed to the evolution of the Web that develops standards implementable in web browsers.
- Pronunciation: what-wee-gee, what-wig, what-double-you-gee
- How do you spell and pronounce WHATWG?
- Further information: WHATWG – FAQ
History
It was founded by programmers of Apple, the Mozilla Foundation, and Opera Software in 2004 who were concerned about the W3C’s activity related to the development of HTML.
Operation
Its operation is coordinated by the Steering Group whose current members are Apple, Google, Microsoft, and Mozilla.
Participation
Participation is open to the public. See: WHATWG – Participation https://participate.whatwg.org/
Development model
The WHATWG develops specifications called “Living Standards” that are continuously updated.
Subscribe to my newsletter
Read articles from Mojtaba Maleki directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Mojtaba Maleki
Mojtaba Maleki
Hi everyone! My name is Mojtaba Maleki and I was born on the 11th of February 2002. I'm currently a Computer Science student at the University of Debrecen. I'm a jack-of-all-trades when it comes to programming, so if you have a problem, I'm your man! My expertise lies in Machine Learning, Web and Application Development and I have published four books about Computer Science on Amazon. I'm proud to have multiple valuable certificates from top companies, so if you're looking for someone with qualifications, you've come to the right place. If you're not convinced yet, I'm also a great cook, so if you're ever hungry, just let me know!