How do I fetch data from the internet with a GSM module using GPRS?
Your question:


  what are thing i need to learn to do this



How the modem access the web server


Learning how a client send a request to a web server. HTTP request is the most easiest way. Other ways are FTP, email, etc.
Making sure your modem (GSM/GPRS module) has TCP/IP stack or not. Things are easier if it has TCP/IP stack because the TCP/IP command will be simpler.
Learning how to send a request (example: HTTP) through modem with AT command. You should know how to open a port, send data through the port, and close the port.
Learning how to read a respond from web server after the modem send the request.
Parsing the respond to get the desired information.

How the web site server read the request from the modem


Learning a server side programming language, example: php, asp.
Learning how the server read the request from the modem and parse the request string to get the desired value.
Learning how the server reply based on the request from the modem.
Learning how the server write the data in a database or a plain text file (optional).



Your question


  i can buy domain and host.... or is there any other free service for this?


There are paid and free web hosting services. Search in Google. Paid services are more reliable and do not give more troubles.