This list is necessarily incomplete, partly due to the complexity of
modern HTTP and HTML, but it hits the high points. If you think
there is something critical missing, please contact me by email.
<tr>
<td >
Can transfer text-based documents
</td>
<td >
Yes
</td>
<td >
Yes
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Can transfer binary media
</td>
<td >
Yes
</td>
<td >
Yes
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Has a hypermedia document format
</td>
<td >
No [1]
</td>
<td >
Yes
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Hypermedia format can inline
binary media
</td>
<td >
No
</td>
<td >
No [2]
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Protocol responses include error
codes
</td>
<td >
No
</td>
<td >
Yes
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Protocol responses include content
type
</td>
<td >
No
</td>
<td >
Yes
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Protocol responses include content
length
</td>
<td >
No
</td>
<td >
No
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Supports connection re-use
</td>
<td >
No
</td>
<td >
No
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Requests and responses are
extensible with headers
</td>
<td >
No
</td>
<td >
No
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Uses transport-layer encryption
</td>
<td >
No [3]
</td>
<td >
Required
</td>
<td >
Optional
</td>
</tr>
<tr>
<td >
Uses URLs for links
</td>
<td >
No [4]
</td>
<td >
Yes
</td>
<td >
Yes
</td>
</tr>
<tr>
<td >
Supports streaming
</td>
<td >
No
</td>
<td >
Yes [5]
</td>
<td >
Yes
</td>
</tr>
</table>
<br>
- [1] Gopher supports a text file format with links for defining
submenus. It wasn't intended to be used as a hypermedia document
format, but it is somewhat usable as one.
- [2] Some Gemini clients support displaying images or audio/video
files inline after their links, once the link is clicked or hovered
over.
- [3] Some gopher clients and some gopher servers support wrapping
the protocol in TLS. There is no standard for this, however.
- [4] It is possible (and conventional) to use URL formatted
selectors in Gopher H-type menu items. This is not well-supported
by all clients. Also, some clients will linkify URLs in text
documents.
- [5] Gemini responses are not complete until the connection is
closed with a TLS close_notify message. Clients are allowed to start
processing a response before it is closed, allowing streaming of
media. Gemini does not have an equivalent of HLS (HTTP Live
Streaming), however, which means streams can't be offered in
multiple bitrates except with separate links, and seeking on
streams is likely to be unreliable.