因为HTTP是运行于TCP之上的,所以HTTP的实现同样同甘共苦TCPSocket,客户端向服务器端口发出请求,建立Socket连接,客户请求通过Socket被服务器接受并回应,相应的文档以流的方式通过Socket传给服务器,浏览器解释并显示该文档。图2-2是客户机和服务器通信中的HTTP连接图。
HTTP协议的作用原理包括四个步骤:
(1)客户端与服务器建立连接。浏览器首先向Web服务器发出建立连接请求,建立TCP连接,打开一个称为socket的虚拟文件,此文件的建立标志着连接建立成功。
(2)客户端向服务器提出请求。客户端发出数据请求包,通过socket向Web服务器提交请求,在此浏览器是将请求的对象的统一资源定位符传给服务器,HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:GET路径/文件名HTTP/1.0
(3)服务器接受请求,并根据请求返回相应的文件作为回应,每个服务器上都运行着一个侦听50端口的进程等待来自客户端HTTP请求。当服务器接收到请求命令后根据命令作出响应,将HTTP头和酷虎段所请求的URL数据返回给客户端。
(4)客户端与服务器关闭连接。在数据返回完成之后服务器立即发出关闭这个TCP连接的命令,客户端响应这个命令关闭连接,一次连接完成了。
假设客户机与server.zzidc.com:8080/mydir/index.html建立了socket连接,会发送GET命令:GET/mydir/index.html HTTP/1.0。主机名为server.zzidc.com的服务器从它的文档空间中搜素子目录mydir的文件index.html。如果找到该文件,Web服务器把该文件内容传送相应的Web浏览器。为了告知Web浏览器传送内容的类型,Web服务器首先传送一些HTTP头信息,然后传送具体内容,HTTP头信息和HTTP体信息之间用一个空行分开。图2-3是通过socket连接获取网页的过程。