you can refer the wiki page official wiki for more details. This page contains my experiences.
boot qemu PXE with tftp protocol:
To make my life simple, I downloaded following files into directory /home/myname/pxe/
Then I modified the gtest.gpxe to use tftp instead of http.
Edited contents of my gtest.gpxe are as follows
#!gpxe kernel tftp://10.0.0.88//bz2bzImage root=100 initrd tftp://10.0.0.88//initrd.bz2 boot
Then I used qemu with bootp to boot with tftp in following way.
qemu -bootp tftp://10.0.0.88//gtest.gpxe -tftp /home/myname/pxe/ -fda gpxe.dsk
The IP address used here 10.0.0.88 can be anything, It's not the IP address of my machine. As long as you use the same IP address in qemu command and in gtest.gpxe file, it should work.
Here I am not running any tftp server on my machine. qemu will do most of the work for us.
tftp://10.0.0.88//gtest.gpxe
will be mapped to /home/myname/pxe/gtest.gpxe file.
For this test, all that you need to have is gpxe.dsk and following command should work without any problems.
qemu -fda gpxe.dsk -net nic -net user -bootp http://etherboot.org/gtest/gtest.gpxe
I also created the copy of gtest on my own web server for testing purpose, and it worked with following command.
$ qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/gpxe/gtest.gpxe