Whew! Honestly, I think you might invest in Angie Byron's Using Drupal book from O'Reilly or check out some of the courses at Drupalize.me
I know it sounds like a simple question, but in the Drupal world the answer is often "it depends".
For code, possible methods include
- FTP what's changed
- push from your dev platform to a git repo and then pull to live
- run drush up on both platforms if just updating a module
- perhaps others
For data/configuration, that's not simple. Ideally you want to do as little of that as possible on the dev platform. When you make config changes, you need to make a note of them and then manually apply on live.
There are some other options
- create a "deploy" script as you go that will set variables using drush
- save config options as "features" (requires the Features module and the Strongarm module)
- use the Deploy module and similar, none of which I've had great luck with.
Improving this is a big initiative for Drupal 8, known as CMI (Configuration Management Initiative). See [groups.drupal.org