WEB服务器的工作原理 1、建立连接 在HTTP工作开始之前,web浏览器首先通过DNS解析域名,然后与Web服务器建立TCP连接。 2、发送请求 Web服务器向Web服务器发送请求命令一旦建立了TCP连接,Web浏览器就会向Web服务器发送HTTP请求命令,包括HTTP头部等信息。 3、Web服务器应答 客户机向服务器发出请求后,服务器会按请求给客户机回送响应,包括响应行,响应头和响应体。响应行包括协议的版本号和应答状态码。 4、Web服务器关闭TCP连接 一般情况下,一旦Web服务器向浏览器发送了响应数据,他就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行:Connection:keep-alive,TCP连接在发送后将任然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
请求方法: 在HHTP协议中,HTTP请求可以使用多种请求方法,这些方法指明了要以何种方式来访问Request-URL所标识的资源。 Get请求获取由Request-URI所标识的资源 POST请求服务器接收在请求中封装的实体,并将其作为由Request-Line中Request-URI所表示的资源的一部分 Head请求获取由Request-URI所表示的资源的响应消息抱头 PUT请求服务器存储一个资源,并用Request-URI作为其标识符 Delete请求服务器删除由Request-URI所标识的资源 Trace请求服务器回送到的请求信息,主要用于测试或诊断 Connect保留将来使用 Options请求查询服务器的性能,或者查询与资源相关的选项和需求 HTTP每行头域的格式为: 域名 冒号( 域值 由以上三部分组成,域名是大小无关,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。 常见的几个请求头域 Host头域: host请求报头域主要用于指定被请求的资源的internet主机和端口号,它通常从HTTP URL中提取出来的。 实例: 浏览器发送的请求消息中,就会包含Host请求报头域,如下:Host:localhost 此处使用缺省端口号80,若指定了端口号8080,则变成:Host:localhost:8080
Accept头域: 作用:浏览器可以接受的媒体类型(MIME类型) 例如:Accept:text/html代表浏览器可以接受服务器回发的类型我text/html也就是我们常说的html文档,入个服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable) 通配符*代表任意类型。例如Accept:*/*代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个) Cookie头域: 作用:最重要的header,将cookie的值发送给HTTP服务器 Referer头域 作用:提供了Request的上下文信息服务器,告诉服务器我是从哪个连接过来的,比如我从主页上连接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的连接访问他的网站。防盗链通常也是根据这个头域来实现的。 例如: Host:translate.google.cn
User-Agent头域: 作用:告诉HTTP服务器,客户端使用的操作系统和浏览器的名称和版本. 我们:User-Agent:Mozilla/4.0(compatible;MSIE8.0 ; Windows NT 5.1; Trident/4.0 ;CIBA;.NET CLR 2.0.50727;,.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729;,NET4.0C;InfoPath.2;.NET4.0E)
Location头域 作用:Location响应抱头域用于重定向接受者到一个新的位置。例如:客户端所请求的页面已不存在原先的位置,为了让客户端重定向到这个页面新的位置,服务器端可以发挥Location响应抱头后使用重定向语句,让客户端去访问新的域名所对应的服务器上的资源; Server头域: 作用:Server响应报头域包含了服务器用来处理请求的软件信息及其版本。它和User-Agent请求报文域是相对应的,前者发送服务器端软件的信息,后者发送客户端软件(浏览器)和操作系统的信息。
Content-Type头域: 作用:用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
Set-Cookie头域: 设置和页面关联的Cookie |