Topics:
- Technical Specifications
- IEEE floating point numbers
- DNS
- Public Suffix List
- Pitfalls of Public Suffix List: https://www.icann.org/en/system/files/files/sac-070-en.pdf
- Email
- Running a mail server
- Sending email
- Not turning into a spambot
- Validating email addresses
- double-opt-in
- Setting up DNS records
- URI
- Program to visually break down a URI into components
- History
- URI Base
- absolute URI
- URI References
- Resolving URI References
- URI equality testing e.g. https://issues.apache.org/jira/browse/HTTPCLIENT-1995
- TLS
- Encryption certificates
- Server Name Indication (SNI)
- Certificate Transparency Logging
- Encryption
- List of digest algorithms and links to IANA registries of digest algorithms
- HTTP
- Transparent proxies
- Gateways
- Caching
- Conditional changes
- Session management
- File uploads
- Naming routes
- Versioning APIs (how and when to version an API)
- Task management (e.g. 202 Accepted)
- Monitoring a remote task for completion
- Glossary:
- HTTP methods
- HTTP status codes
- HTTP headers
- https://www.w3.org/2001/tag/doc/mime-respect
- Subscribing to events with webhooks
- Content negotiation
- http://www.ltg.ed.ac.uk/~ht/reactive_conneg.html
- Media types
- media type name syntax
- multipart
- Web Linking
- IANA Link Relations
- ASCII
- Unicode
- http://www.unicode.org/reports/tr36/
- Text direction and mixed text directions
- Media types
- Internationalization concerns
- Differences in names in US, Japan, China, India, Russia, Arabic, Hebrew, ...
- Right-to-left languages
- XML
- XML Namespaces
- Makefiles
- Shell/bash
- Parts of a Website
- homepage
- sitemap.xml
- robots.txt
- .well-known
- favicon
- stylesheet
- scripts
- metrics/tracking
- HTML
- Webpages
- Element reference
- Structuring pages
- Marking up content
- Annotating content with RDFa
- DOM
- organizing content sections
- Overview of template engines
- embedding media
- methods of streaming media with content type and bitrate negotiation
- text/html parsing
- application/xhtml+xml parsing
- DOM
- JSON
- CSS
- ECMAScript
- Document contexts (webpage, Node.js event loop, ...)
- Web browser event loop
- Caching
- CSRF handling
- OAuth
- HTTP Requests
- Business concerns (Privacy policy)
- JSON-LD
- JSON Schema
- User Agents & User Agent Design
- "Client authenticity"
- User authentication
- https://pages.nist.gov/800-63-3/sp800-63c.html
- How to store passwords
- PBKDF, constant-time comparison function
- How to handle credit card numbers & PCI Compliance
- Encoding URIs in HTML attributes to avoid XSS concerns
- HTML forms best practices
- i18n/lang support
- Autocompletion
- Geo-location
- Disability accommodation
- Visual contrast requirements
- Screenreading support
- CAPTCHA considerations
- Naming things
- Names should have a function and a type - just "date" is ambiguous, just "uri" is ambiguous
- Blog/papers section for name & dated opinion pieces
- Testing
- Testing payment systems
- UI testing
- Error correction
- IP error detection
- https://quiet.github.io/quiet-blog/2018/09/16/How-Libcorrect-Does-Forward-Error-Correction.html
- OpenSearch
- Dweb - SOLID
- https://github.com/solid/solid-spec
- https://solid.inrupt.com/docs/intro-to-solid-spec
- Other documentation efforts
- https://www.owasp.org/
- http://typographyhandbook.com/
- https://a11yproject.com/
- https://devdocs.io/
- http://webconcepts.info/
- https://12factor.net/
- https://github.com/fejes713/accessibility-guide
- https://caniuse.com/
- https://featurepolicy.info/
- https://github.com/LearnSolid/solid-roadmap
- http://resthooks.org/
- https://javascript.info/
- http://apistylebook.com/
- https://howtojsonapi.com/
- https://apisyouwonthate.com/
- http://standards.rest/
- https://github.com/goldbergyoni/javascript-testing-best-practices
- How to write Internet Standards
- IETF process
- One media type, one specification for all versions