HTTP协议详解
HTTP协议详解
HTTP协议: 规定客户端和服务器如何进行交互 基于TCP/IP协议的应用层协议 HTTP协议基于请求响应模型 一次请求对应一次响应 请求只能由客户端发出,服务器只能被动的等待请求做出响应 1.0和1.1的区别 1.0:一次请求立刻断开连接 telnet/httpwatche HTTP请求 请求行 GET /books/java.html HTTP/1.1 请求方式 七种请求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT 真正使用的时候:POST/GET GET请求方式和POST请求区别在于请求参数在传递的过程中方式不同 如果是GET提交,请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K. 如果是POST提交,请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制. 利用form表单提交数据时,form表明明确的声明要用POST提交,这是请求参数就是POST提交 除此以外所有方式的请求参数都是GET提交 请求的资源部分的名称 所遵循的协议版本 若干请求头 Accept: */* 接受类型 (“/”代表所有的类型) Accept-Charset: ISO-8859-1 所接受的字符编解码 Accept-Encoding: gzip,compress 所接受的数据的压缩格式 Accept-Language: en-us,zh-cn 语言环境(国际化) Host: www.it315.org:80 访问的虚拟主机的名字 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 缓存机制相关的头 Referer: http://www.it315.org/index.jsp 防盗链的作用 User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 当前使用的浏览器 Cookie Connection: close/Keep-Alive 是否关闭当前连接控制 Date: Tue, 11 Jul 2000 18:23:51 GMT 访问时间 实体内容 HTTP响应 状态行 (第一行) HTTP/1.1 200 OK 1.1协议版本 状态码--用来表示本次请求的处理结果的代码 200 成功 302 要实现一个重定向,为了完成客户机进一步细化 304/307 404 客户端请求有错误,访问不存在 500 服务器出错了 若干响应头 Location: http://www.it315.org/index.jsp Server:apache tomcat 通知浏览器我的服务器的一些基本信息 Content-Encoding: gzip 当前压缩格式 Content-Length: 80 发送数据回去的总长度 Content-Language: zh-cn 语言 Content-Type: text/html; charset=GB2312 当前发送过去的数据是什么数据 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT Refresh: 1;url=http://www.it315.org 3秒后访问哪一个页面 Content-Disposition: attachment;filename=aaa.zip Transfer-Encoding: chunked Set-Cookie:SS=Q0=5Lb_nQ; path=/search ETag: W/'83794-00' Expires: -1 ---- 通知浏览器是否缓存当前资源 ,如果这个头的值是一个以毫秒为单位值就是通知浏览器缓存资源到指定的时间点,如果值是0或-1则是通知浏览器禁止缓存 Cache-Control: no-cache -- 通知浏览器是否缓存资源 Pragma: no-cache -- 通知浏览器是否缓存资源 之所以三个头是一个功能,是因为历史原因.不同的浏览器对这三个头支持的不同,一般来说这三个头要同时使用确保不同的浏览器都能实现控制缓存的功能 Connection: close/Keep-Alive Date: Tue, 11 Jul 2000 18:23:51 GMT 实体内容