1: Buy a USB programmer. There are other ways, but this is the easiest. They cost like 1$. Example
2: You need to make a change to your USB Programmer if you want to push code to it. You will need to short these pins when you upload your code into it:
I recommend you to solder some kind of switch to it, to be able to switch between "code mode" and "debug mode". The debug mode will allow you to use the Serial Mode. The code mode will allow you to push code to the microcontroller and to do that those pins need to be shorted. My solution:
3: Short the pins, connect the ESP8266-01 to the computer and upload my code (server.ino). Download the ESP8266WiFi.h library if you don't have it.
4: Unshort the pins.
The ESP8266-01 will request a update response to the Arduino. The Arduino will get the request and respond to the ESP8266-01 accordingly. That response will be shown on the Web Server. There are better (faster) options to do this but I think this is the simpliest.
Just upload the code I gave you to the Arduino (arduino.ino). To upload the code to the arduino, the ESP8266-01 will need to be powered off. If you need to upload code to the arduino while the ESP8266-01 is connected, just disconnect the VCC, upload the code, disconnect the Arduino, plug the VCC back again and turn the Arduino on.
ESP --> ARDUINO
RX --> TX
TX --> RX
VCC --> 3.3V
CH_PD --> 3.3V
GND --> GND