GENERAL IDEA:
I would recommend getting a simple Wi-Fi and/or Ethernet module.
Then simply set up routes to receive and send data to Arduino (assuming arduino_ip to be your Arduino's IP), and GET and POST being HTTP verbs:
Receive data from Arduino:
GET http://arduino_ip/data
Send data to Arduino:
POST http://arduino_ip/data
Now use any Web development Framework/Language (PHP, Node.js, Python) to receive and send data.
NO ADDITIONAL MODULES SOULTIONSOLUTION:
The above method will aloowallow the arduino and server to communicate if they're on the same network. However, if you can constrain the server to be connected by USB to Arduino, you can use Node.js, Python (even PHP) to directly communicate to Arduino.
ANOTHER SOULTIONSOLUTION:
Add a Raspberry Pi, have it connected to Arduino by USB (Arduino's Serial), and the use Raspberry's Ethernet to bring in networking (Raspberry Pi can host a server itself)