Sherlock Network Protocols in Mac OS 9
Apple’s Sherlock 2, integrated into Mac OS 9, relied primarily on standard internet application protocols—most notably HTTP and HTTPS—running over TCP/IP to query external web search engines and retrieve remote data. By leveraging these universal web protocols alongside custom search plugin files, Sherlock acted as an early desktop meta-search client that aggregated search results from multiple web servers simultaneously without requiring a standalone web browser.
Hypertext Transfer Protocol (HTTP and HTTPS)
The core mechanism Sherlock used to communicate with search servers was HTTP (Hypertext Transfer Protocol), as well as HTTPS (HTTP Secure) for encrypted endpoints.
Sherlock executed internet searches through search plugin files
ending with the .src extension. These text-based plugins
defined the target search engine's URL and specified the exact request
method—typically an HTTP GET or HTTP POST
request. When a user submitted a query, Sherlock generated standard HTTP
requests containing the search parameters, sent them to the specified
web servers, and received raw HTML or text responses to parse and
display locally within the Mac OS 9 interface.
Transport and Internet Layer Protocols (TCP/IP)
Sherlock's application-layer communications depended on the Mac OS 9 networking architecture, known as Open Transport. Through Open Transport, Sherlock utilized standard networking protocols:
- TCP (Transmission Control Protocol): Handled reliable, connection-oriented data transmission between Sherlock and the remote web servers hosting the search engines.
- IP (Internet Protocol): Addressed and routed the search packets across local networks and the broader internet.
Domain Name System (DNS)
To contact web servers, Sherlock relied on DNS (Domain Name System)
queries through the Mac OS 9 TCP/IP stack. Because search plugins
specified domains rather than static IP addresses (such as
google.com or altavista.com), Sherlock queried
the local system's configured DNS servers using UDP (User Datagram
Protocol) port 53 to resolve domain names to IP addresses prior to
initiating HTTP connections.
File Transfer Protocol (FTP)
While general web queries relied entirely on HTTP, Sherlock also utilized FTP (File Transfer Protocol) for specific channels and auxiliary tasks. Certain reference plugins and software update channels could use FTP to list directories and download files directly from public FTP archives, allowing users to locate and retrieve files hosted on remote servers directly from the Sherlock interface.