Before Apple had their very own Internet browser, Mac users had to depend on Internet Explorer for Mac to surf the web. Part of Steve Jobs plan to resurrect the popularity of the Mac was to create its very own web browser – Safari.
Apple being Apple, the entire project was top secret. Even Apple employees weren’t allowed to know that Apple was cooking up its own browser. The secrecy of the project made things difficult because Apple needed to test the browser as they built it, but server logs would identify Safari before it was announced and Apple’s secret would be blown.
Rather than risk someone discovering Safari via their server logs, Apple cleverly hid Safari’s true identity by pretending it was Mozilla, and it actually worked. Here’s the story according to former Apple employee Don Melton who was in charge of the Safari team:
“Server logs. They scared the hell out of me.
When a Web browser fetches a page from a Web server, the browser identifies itself to that server with a user agent string — basically its name, version, platform, etc. The browser also gives the server an IP address so the server knows where to return the page. This exchange not only makes the Web work, it also allows the server to tell who is using what browser and where they’re using it.
You can see where this is going, right? But wait, there’s more…
Back around 1990, some forward-thinking IT person secured for Apple an entire Class A network of IP addresses. That’s right, Apple has 16,777,216 static IP addresses. And because all of these addresses belong together — in what’s now called a “/8 block” — every one of them starts with the same number. In Apple’s case, the number is
18.104.22.168? That’s Apple.
22.214.171.124? Yes, Apple.
126.96.36.199? Also, Apple.
188.8.131.52? Apple, dammit!
I was so screwed.
So we hid my cleverly designed Safari user agent string whenever we were at Apple.”
Don Melton continues to explain how they kept Safari dressed as Mozilla for the six months before the big unveil. You can read the full story over at his blog.Related