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.