Scroll Protocol

Scroll Protocol

The Scroll Protocol


Scheme: scroll://
Port: 5699
Naming Theme: Libraries and Scrolls

The Scroll Protocol is a new document-retrieval protocol on port 5699, inspired by Gemini and Gopher+. It focuses on quality-of-life additions, particularly internationalization. It adds more metadata to responses, the ability to request pages in a specific language, and a new metadata request, similar to Gopher+'s metadata request. It tries to offer a power-to-weight balance by providing basic metadata and relational data in documents with minimal effort and additions.

The additional metadata added to each response is the author, publish date, and modification date. Abstracts of resources are also provided with *metadata requests* only.

Request strings now include an additional parameter that allows the client to specify a list of desired languages. The server will respond with the document in one of the desired languages, or the default language if the requested languages are unavailabe. The language of the response is given in the mimetype.


Software Overview





Why a New Protocol?

Appendix 1


A page on the Scroll protocol.
a collection of scrolls; a scroll site.


Comparison: gemini:// vs. spartan:// vs. scroll:// vs. nex://

                             gemini       spartan           scroll             
                             ------       -------           ------             
naming scheme                space        sparta/greece     scrolls & libraries
transport                    TCP + TLS    TCP               TCP + TLS          
request structure            full URL     hostname & path   full URL           
request encoding             utf-8        us-ascii          utf-8              
status codes                 18           4                 18                 
document type                text/gemini  text/gemini       text/scroll        
input prompt                 1x status    "=:" prompt line  1x status          

data upload                  limited      yes               limited            
mimetypes                    yes          yes               yes                
virtual hosting              yes          yes               yes                
same-site redirects          yes          yes               yes                
cross-site redirects         yes          no                yes                
proxy requests               yes          no                yes                
"lang" response parameter    yes          no                yes                
lang request parameter       no           no                yes                
response metadata            heuristic    heuristic         yes                
abstract/metadata requests   no           no                yes                

link relationships           heuristic    heuristic         yes                
list nesting                 no           no                yes                

* heuristic means clients must try to interpret the information from the text of the default document format due to a lack of standard.