On one hand, every HTTP request should be assumed to leave an entry in the server's logs. What this means, however, is highly context-dependent. For a small website with only a few pages, a full mirror may be indistinguishible from a human clicking on a small number of links in it. A website containing millions of pages, however, necessarily takes millions of HTTP requests to mirror.
Weblog analysing systems usually include mechanisms for plotting request density geographically, and the statistical machinery that does that can trivially detect spikes of many requests coming from a single IP address or network in a relatively short time.
The owner of the website may or may not object, depending on context. Many companies are generally happy when GoogleBot reads through their websites, for example. They may be much less happy when they notice a competitor is doing the same thing. They may also be unhappy when they notice that either the traffic or computing power needed to generate responses costs them more money than they expected to spend on the service.
Depending on what kind of data is served by the server, you may acquire some legal liabilities by coming to possession of it. For example, in EU, the Data Protection Directive (and national laws implementing it) govern handling of personal data.
In general, if you want to mirror or scrape a website in a polite manner, you should start by requesting
/robots.txt, parse it, and follow the instructions in it. You should usually also space out the requests to the server so it wouldn't be choking on your traffic. Nowadays, a few seconds of delay between completing one request and starting a new one is generally considered sufficient. The expected delay used to be longer in the early days of Internet, when bandwidths were lower, processing power was more expensive, and webservers sucked worse at balancing their load.
robots.txt, but if you're scraping a particular website, taking a look at the terms may be a good point of preparation.