If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.
Property:HTTP
BoxMatrix >> Lexicon >> Network-Protocols >> HTTP | @ BoxMatrix - IRC-Chat - Translate: de es fr it nl pl |
News | Selectors | Models | Accessories | Components | Environment | Config | Commands | System | Webif | Software | Develop | Lexicon | Community | Project | Media |
Computer | FRITZ | I18N | Telephony | Smarthome | Internet | Protocols | Multimedia | Formats | Hardware | Software | Research |
Protocol
Protocol: | HTTP | Wiki | Freetz | IPPF | whmf | AVM | Web |
Short for: | Hypertext Transfer Protocol | ||||||
Location: | Lexicon >> Network-Protocols | ||||||
Weblinks: | Wikipedia.int - Wikipedia.de - RFC-2616 - RFC-9113 - RFC-9114 | ||||||
Description: | Protocol to serve hypertext in the WWW |
Goto: Examples - FRITZ!OS - SMW-Browser
Details
HTTP is a request / response protocol, designed to serve hypertext documents in the WWW, typocally on Port-80-tcp.
Hypertext combines text with references to other content (URLs, graphics, etc), the most important format is HTML.
Today HTTP and its secure variant and successor HTTPS are the most important protocols in the net.
Most content in the net is served by one of these protocols.
The RFCs linked above are the current standards for HTTP 1.1, 2.0 and 3.0. Older versions are declared obsolete.
There are many further standards defining extensions, see the Wikipedia articles.
HTTP consists of a textual header
defined in the standards and a body
which can be empty or have arbitary content.
Each header line is terminated by a CRLF (\r\n
), the complete header is terminated by 2 CRLFs (an empty line).
The first line of a HTTP request
contains the request method
, the location of the document and the HTTP version
.
Further header lines are Keyword: Value
assignments. A minimalistic request looks like this:
GET /path/to/document HTTP/1.1 Host: fritz.box
The first line of a HTTP response
contains the HTTP version
, the numerical status code
and the status message
.
Further header lines are also Keyword: Value
assignments. A minimalistic response looks like this:
HTTP/1.1 200 OK Connection: close Content-Length: 12 Content-Type: text/plain; charset=utf-8 Hello world!
Content-Type:
contains the MIME type and Charset used (here UTF-8 text) so the client knows how to treat the content.
FRITZ!OS
FRITZ!OS uses HTTP for many services:
- Webinterface access from the LAN served by ctlmgr or websrv (older firmware) using Port-80-tcp
- Webinterface access for a cable ISP proxied by pumaglued using Port-80-tcp of the modem IP
- UPnP / TR-064 access from the LAN using Port-49000-tcp
- SSDP discovery in the LAN using Port-1900-udp
- RTSP by cableinfo using Port-554-tcp.
- Firmware download using BusyBox wget
- WebDAV, CardDAV and CalDAV are extensions of HTTP
- and more (todo)
Examples
telnet can be used to type a HTTP request manually. Note the empty line to terminate the request header. fw 7.29:
me@home:~$ telnet fritz.box 80 Trying 192.168.178.1... Connected to fritz.box. Escape character is '^]'. GET / HTTP/1.1 Host: fritz.box HTTP/1.1 200 OK Cache-Control: no-cache Cache-Control: no-cache, no-store, must-revalidate Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8 Date: Fri, 05 Aug 2022 08:47:07 GMT Expires: -1 Pragma: no-cache Keep-Alive: timeout=60, max=300 X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Content-Security-Policy: default-src 'none'; connect-src 'self'; font-src 'self'; frame-src https://service.avm.de https://help.avm.de https://www.avm.de https://avm.de https://assets.avm.de https://clickonce.avm.de http://clickonce.avm.de http://download.avm.de https://download.avm.de 'self'; img-src 'self' https://tv.avm.de https://help.avm.de/images/ http://help.avm.de/images/ data:; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; media-src 'self' <!DOCTYPE html> <html lang="de"> <head> ...