Note : use latest version of Pxelinux to work over HTTP, for me version 3.80 worked.
Following is the way to run Pxe-knife (or any pxelinux based system) over http.
qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/pxeknife/pxelinux.0
or you can boot the online version of PXE-Knife using following command.
qemu -fda gpxe.dsk -net nic -net user -bootp http://alien.doesntexist.org/pxeknife/pxelinux.0
I recompiled the gpxe with following embedded script ../contrib/scripts/forpxeknife.gpxe,
#!gpxe echo "Hi, We will be using PXEKnife from URL http://www.alien.doesntexist.org/pxeknife/" dhcp net0 set 209:string /pxeknife.cfg/default set 210:string http://www.alien.doesntexist.org/pxeknife/ echo "Here we go" chain http://www.alien.doesntexist.org/pxeknife/pxelinux.0
and I compile with following command
make clean && make EMBEDDED_IMAGE=../contrib/scripts/forpxeknife.gpxe
I execute qemu with no extra parameters at-all.
qemu -fda gpxe.dsk
If you want to try out PXE-Knife without installing then visit page pxeknifeOverHttp
In case you encounter any problems with this then you can refer the page QemuPxeKnifeHTTPProbs