Lots of details at: http://www.stevesouders.com/blog/2011/06/27/unexpected-reloads-in-webkit/ This looks like at least one possible source of the behaviour: void FrameLoader::load(DocumentLoader* newDocumentLoader) { ResourceRequest& r = newDocumentLoader->request(); addExtraFieldsToMainResourceRequest(r); FrameLoadType type; if (shouldTreatURLAsSameAsCurrent(newDocumentLoader->originalRequest().url())) { r.setCachePolicy(ReloadIgnoringCacheData); type = FrameLoadTypeSame; } else type = FrameLoadTypeStandard; <..> }
The linked blog post suggests this happens on Safari, iPhone and Android but not Chrome.
Yes, this is by design - the idea is that if a user hits Return in address bar, that's to refresh page content.