HTTP

From BC$ MobileTV Wiki
(Redirected from Hypertext Transfer Protocol)
Jump to: navigation, search

HyperText Transfer Protocol (commonly abbreviated as HTTP) is the underlying protocol that drives the majority of communications on the World Wide Web.



Standards

HTTP 1.x

HTTP 2.x

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

HTTP 3.x

[17] [18] [19] [20] [21] [22]


HTTP Header

[23] [24] [25]

User Agent

User Agent strings are snippets of information that provide some basic identifying data about the Device, Operating System (OS) and/or Browser type and versions. This information is used by Browsers (or Native App webviews) when connecting from their client to respective Web Servers when making requests for content; many advanced websites/webapps then use this information to dynamically adjust features based on the capabilities of the particular Device/OS/Browser combination, which is known as "Browser Detection".

[26] [27] (RDF-based spec for describing "Mobile Device capabilities") [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54]

Client-Hints

"Client-Hints" is a proposal from Google that at this point is quite likely to be rolled out to actual Device/OS/Browser combinations on Android (for Mobile Devices/Tablets in 2023), Chromebooks (also (2023), and even sooner within their Chrome web browser (as early as 2022), for the purpose of limiting identifiable/fingerprint-able data about a given client and its user(s). It allows clients to advertise information about itself through these fields so the server can determine which resources should be included in its response. As an abstract example, the server might indicate in an Accept-CH response header of an initial request that it can accept device pixel ratio information from the client. The client will then make future requests using a header field containing these details, and the server will respond with images appropriate for that device pixel ratio.

Before the "Client-Hints" change is made, a standard Google/Android device's User-Agent string would look like the following:

User-Agent: Mozilla/5.0 (Linux; Android 12; Pixel 6 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36

After the "Client-Hints" change is made, all Google/Android devices will now give a generic User-Agent header like:

User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36

Along with additional HTTP Headers such as:

Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"
Sec-CH-UA: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"

It would be one thing if they were just moving this information around; however, they are not. By default they will not send any "Sec-CH" headers. To request the client send back a 2nd small request indicating the Device/OS/Browser type:

Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version

Or, to force the page to stop rendering and refresh while forcing :

Critical-CH:  Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version

[55] [56]


HTTP Status Codes


Servers

Apache

Apache Web Server

lighttpd

mongoose

micro_httpd




Tools

Netstat

Use the following command to list all running network connections:

 netstat -a 


Resources


Tutorials


External Links


References

  1. HTTP2 official website: https://http2.github.io/
  2. Hypertext Transfer Protocol version 2: http://tools.ietf.org/html/draft-ietf-httpbis-http2-17
  3. HTTP/2 – A Real-World Performance Test and Analysis: https://css-tricks.com/http2-real-world-performance-test-analysis/
  4. HTTP/2 -- Frequently Asked Questions: https://http2.github.io/faq/
  5. Getting Ready For HTTP2 -- A Guide For Web Designers And Developers: https://www.smashingmagazine.com/2016/02/getting-ready-for-http2/
  6. What is HTTP/2?: https://yoast.com/what-is-http2/
  7. How to enable HTTP/2 support in Apache: https://http2.pro/doc/Apache
  8. Setting up HTTP/2 on your web server: https://www.tunetheweb.com/performance/http2/
  9. How to enable http2 on centos7: https://stackoverflow.com/questions/40720703/how-to-enable-http2-on-centos7
  10. Install Apache with mod_ssl & mod_http2 on CentOS 8 / RHEL 8: https://computingforgeeks.com/install-apache-with-ssl-http2-on-rhel-centos/
  11. Why Everyone Should Be Moving To HTTP/2: https://searchengineland.com/everyone-moving-http2-236716
  12. HTTP/2 Statistics (2015) - KeyCDN Report on HTTP/2 Distribution: https://www.keycdn.com/blog/http2-statistics (North America focused so skews heavier on HTTP/2 usage than actual worldwide stats at the time)
  13. InternetArchive -- Web Almanac (2019) Part IV, Chapter 20 - HTTP/2: https://almanac.httparchive.org/en/2019/http2 (biggest stat was 95% of all users on the web can potentially make use of HTTP/2)
  14. InternetArchive -- Web Almanac (2020) Part IV, Chapter 22 - HTTP/2: https://almanac.httparchive.org/en/2020/http2 (biggest stat was 64% of all websites' web servers were supporting HTTP/2
  15. April 2021 Web Server Survey: https://news.netcraft.com/archives/2021/04/30/april-2021-web-server-survey.html
  16. HTTP/2 .vs. HTTP/3: https://w3techs.com/technologies/comparison/ce-http2,ce-http3
  17. What is HTTP/3?: https://react-etc.net/entry/what-is-http-3
  18. The Internet changes - HTTP/3 will not use TCP anymore: https://medium.com/drill/the-internet-changes-http-3-will-not-use-tcp-anymore-427e82eeadc0
  19. HTTP/3 - the past, the present, and the future: https://blog.cloudflare.com/http3-the-past-present-and-future/
  20. HTTP 3 is Out and About!: https://laptrinhx.com/http-3-is-out-and-about-1549222830/
  21. HTTP/3 is Fast (and almost certainly PROD ready in 2022): https://requestmetrics.com/web-performance/http3-is-fast
  22. QUIC - what makes HTTP/3 faster: https://nurkiewicz.com/79
  23. The (HTTP) headers we don't want: https://www.fastly.com/blog/headers-we-dont-want
  24. yCombinator HackerNews -- HTTP Headers we don't want discussion: https://news.ycombinator.com/item?id=17074721
  25. Preventing Malicious Request Loops: https://blog.cloudflare.com/preventing-malicious-request-loops/
  26. wikipedia: User agent
  27. wikipedia: UAProf
  28. List of User Agent strings: https://deviceatlas.com/blog/list-of-user-agent-strings
  29. User Agent listing: https://user-agents.net/devices/mobiles
  30. List of some of the most popular User Agent strings 2021: https://deviceatlas.com/blog/list-user-agent-strings-2021
  31. DeviceAtlas -- THE COMPLETE GUIDE TO USER-AGENT STRINGS: https://deviceatlas.com/sites/deviceatlas.com/files/images/DeviceAtlas_Complete_Guide_To_User_Agents 2021.pdf
  32. WhatIsMyBrowser -- Explore User Agents by Operating Platform: https://developers.whatismybrowser.com/useragents/explore/operating_platform_string/
  33. User Agents listing: https://user-agents.net/
  34. List-of-user-agents: https://github.com/tamimibrahim17/List-of-user-agents
  35. Google Dev docs -- Chrome browser - User-Agent strings: https://developer.chrome.com/docs/multidevice/user-agent/
  36. Samsung Dev docs -- Samsung Internet Browser - User-Agent string format: https://developer.samsung.com/internet/user-agent-string-format.html
  37. Amazon Dev docs -- Fire TV - User Agent strings: https://developer.amazon.com/docs/fire-tv/user-agent-strings.html
  38. MozDev -- Firefox - user agent string reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
  39. UserAgentString -- Safari - most common (legacy) UAs: http://useragentstring.com/pages/useragentstring.php?name=safari | ALL UAs
  40. Complete List of iOS User-Agent Strings: https://enterpriseios.com/wiki/Complete_List_of_iOS_User_Agent_Strings
  41. Detect Apple iPhone Model Numbers and User-Agents: https://51degrees.com/blog/detect-apple-iphone-model-numbers-and-user-agents
  42. Tech Stuff - Mobile Browser ID (User-Agent) Strings: http://www.zytrax.com/tech/web/mobile_ids.html
  43. List of mobile user-agents: http://www.codereye.com/2014/12/list-of-mobile-user-agents.html
  44. Complete List of iOS User-Agent Strings: http://www.enterpriseios.com/wiki/Complete_List_of_iOS_User_Agent_Strings
  45. wikipedia: List of iOS and iPadOS devices
  46. iOS device reference: https://iosref.com/ios (release date, first OS, max upgradable OS)
  47. Which version of iOS for which phone? Compatibility list: https://story.backmarket.com/which-version-of-ios-for-which-iphone-compatibility-list/
  48. User Agent Strings of iOS: www.webapps-online.com/online-tools/user-agent-strings/dv/operatingsystem51849/ios
  49. MyIP.ms -- Safari 10 User Agent variations: https://myip.ms/view/comp_browsers/1983/Safari_10.html
  50. Detecting iOS Version Number from User Agent using Regular Expressions: https://stackoverflow.com/questions/11171895/detecting-ios-version-number-from-user-agent-using-regular-expressions
  51. How to detect iOS 6 and all minor versions by user agent?: https://stackoverflow.com/questions/12567260/how-to-detect-ios-6-and-all-minor-versions-by-user-agent/12580745#12580745
  52. What is the iOS 5.0 user agent string?: https://stackoverflow.com/questions/7825873/what-is-the-ios-5-0-user-agent-string
  53. The latest user agents for Safari: https://www.whatismybrowser.com/guides/the-latest-user-agent/safari
  54. List of OTT user agents: https://deviceatlas.com/blog/list-ott-user-agents
  55. wikipedia: HTTP Client Hints
  56. User-Agent, Client-Hints and the Future of Device Detection: https://www.scientiamobile.com/user-agent-client-hints/
  57. WGET for Windows: https://eternallybored.org/misc/wget/
  58. Legacy WGET for Windows32 (SVN repo): http://gnuwin32.sourceforge.net/packages/wget.htm
  59. How To Improve Your Website’s Yahoo Yslow Score: http://www.elegantthemes.com/blog/tips-tricks/how-to-improve-your-websites-yahoo-yslow-score

See Also

TCP/IP | FTP | SSH | Internet | Web | Web Server | Browser Detect | Caching | Computer | Mobile Device | Mobile Phone | Tablet | Android | iOS