Http协议

  当客户端连上web服务器,并想访问web服务器的某个web资源时,需要遵守一定的通信格式,而Http协议就是用于定义客户端与web服务器通信格式的协议。Http全称hypertext  transfor protocol,超文本传输协议,是基于TCP/IP协议的一个应用层协议。
  一、Http请求头。
  客户端连上服务器后,向服务器请求某个web资源,称之客户端向web服务器发送一个Http请求,一个完整Http请求应包括,一个请求行、若干消息头、以及实体内容。
     1)请求行:用于描述客户端的请求方式,请求资源的名称,以及使用的HTTP协议版本号。GET(请求方式)/books/java.html(资源名称) HTTP/1.1
       请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
       常用请求方式有:GET、POST。用户如果没有设置,默认情况浏览器向服务器发送GET请求,例如在地址栏输入地址访问和点击超链接访问都是GET,若想把GET改为POST,可以通过更改表单的提交方式实现。
        两者主要区别:
    GET:可以在请求的URL地址后以"?"的形式带上交给服务器的数据,多个数据之间以"&"隔开。(附带参数有限制,其数据容量通常不能超过1k)
    POST:可以在请求实体中向服务器发送数据,数据量无限制。
      2)请求头:用于描述客户端请求那台主机,以及客户端的一些环境信息等。
请求头:
     
      Accept:text/html,image/*						用于告诉服务器客户机支持的数据类型
      Accept-Charset:ISO-8859-1						用于告诉服务器客户机采用的编码
      Accept-Encoding:gzip,compress					用于告诉服务器客户机支持的数据压缩格式
      Accept-Language:en-us,zh-cn					用于告诉服务器客户机的语言环境
      Host:www.it315.org:80						用于告诉服务器客户机想访问的主机名
      if-Modified-Since:Tue,4 Oct 2013 18:23:51 GMT			用于告诉服务器,资源的缓存时间(下次在访问时根据时间比对网页是否更新,没更新直接拿出缓存,高级网站开发十分有用,减去大量访问次数)
      Referer:http//www.it315.org/index.jsp				用于告诉服务器客户机是从哪个资源访问服务器(防盗链,盗链跳到首页)
      User-Agent:Mozillz/4.0(compatible;MSIE 5.5;Windows NT 5.0)	用于告诉服务器客户机的软件环境
      Cookie							用于向服务器带数据
      Connection:close/Keep-Alive					请求完后是否保持连接
      Data:Tue,4 Oct 2013 18:23:51 GMT					当前时间

      3)请求数据

    二、Http响应头。
     web服务器响应客户端的请求并回送给客户端数据,称之为Http响应头。一个Http响应头包括,一个响应行、若干响应头、以及实体内容。
1)状态行:用于描述服务器对请求处理的结果。HTTP/1.1(响应协议) 200(状态码) OK
状态码:表示服务器对请求的处理结果,它是一个三位的十进制数。状态码分为五类。
  100-199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
  200-299:表示成功接收请求并完成整个处理结果,常用200。
  300-399:为完成请求,客户端进一步细化请求。例如,请求的资源已移动一个新地址。常用302、307和304。(302新的地址,304或307拿缓存)
  400-499:客户端的请求有错误,常用404(请求资源不存在)和403(没有权限)。
             500-599:服务器端出现错误,常用500。
      2)响应头:用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会它回送的数据
响应头:
Location:http//www.it315.org/index.jsp				配合302状态码使用,用于告诉客户端找谁(请求重定向,登录...)
	Server:apache tomacat				用于告诉客户端服务器的类型		
	Content-Encoding:gzip				用于告诉客户端数据的压缩格式
	Content-Length:80					用于告诉客户端压缩数据的长度				
	Content-Language:zh-cn				用于告诉客户端回送语言环境
	Content-Type:text/html;charset=GB2312		用于告诉客户端回送数据类型
	Last-Modified:Tue,4 Oct 2013 18:23:51 GMT		用于告诉客户端当前资源的缓存时间		
	Refresh:1;url=http//www.it315.org			用于告诉客户端隔多长时间刷新一次(聊天室、股票...),也可以控制刷到哪里。
	Content-Disposition:attachment;filename=aaa.zip	用于告诉客户端以下载方式打开数据
	Transfer-Encoding:chunked				用于告诉客户端数据的传送格式
	Set-Cokkie:SS=QO=5Lb_nQ; path=/search				
	ETag:W/"7777-1242234904000"				缓存相关(可以做到时时更新)
	Expiress:-1					用于告诉客户端把回送的资源缓存多长时间,-1或0表示不缓存
	Cache-Control:no-cache				控制客户端不要缓存			
	Pragma:no-cache					控制客户端不要缓存	
	Connection:close/Keep-Alive				请求完后是否保持连接
	Date:Tue,4 Oct 2013 18:23:51 GMT			当前时间

      3)服务器向客户端回送的数据

你可能感兴趣的:(Web)