Android connection path

Wondering if anyone can help me understand how Android (Gingerbread) figures out what network connection to use when a HTTP request is made? 

 

Also wondering if once a connection is established (wifi, cellular) if this connection is maintained or if a best path calc is done and if so when?

 

Is there a way to control what network connection a network request takes?