A header is usually for branding, navigation and to provide a consistent look and feel on your site.
The reason logos are used in headers is to give an instant impression of who owns the site and what kind of site it is. If you stick your logo at the footer people may never see it, and the site may look unbranded, a lone stranded bunch of content with no home!
Putting this content on the side is possible, but unorthodox; it's also impractical on vertically arranged screens (mobile). Leaving it at the side makes it into a sidebar; this complicates matters if you want a secondary navigation, as sidebars are the standard there. Nested sidebars get ugly fast, and eat into your content space. Nested horizontal bars are relatively compact and affect content in a predictable way, always pushing content down exactly by enough space.
In addition, keeping the header at the top means the content is always in the same place. This means that in addition to branding it's a great place for navigation; putting top level navigation in a hard to find place or a place that moves (the bottom of the page) can make things frustrating.
A nice bonus of the logo/navigation situation is that you can use your logo as a link to return to your "home" page, a trick many companies use, but one that shouldn't be your only link to the home page; not all users think to click this.