# Gopher/Gemini/WWW Comparison Table

February 10, 2023 ยท 2 minute read

Posted in:  gemini gopher internet www


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.

<!--more-->
<br>
<style>
table, th, td {
   border: 1px solid black;
   border-spacing: 0;
   border-collapse: collapse;
}
td, th {
   padding: 0.4rem;
}
th {
   background-color: #ccccaa;
   color: black;
}
</style>

<table>
 <tr>
   <th>
           Feature
   </th>
   <th >
           Gopher
   </th>
   <th >
           Gemini
   </th>
   <th >
           WWW
   </th>
 </tr>

 <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.