1、 http协议建立在tcp/ip协议之上,为应用层协议。
2、 web开发,数据传输均依赖于http协议。
3、 http1.0短链接[已被弃用]和http1.1长链接。
http请求的组成部分:请求行,消息报头,请求正文。
http响应的组成部分:状态行,消息报头,响应正文。
/*******************************详细的http响应******************************/
Location:http://www.baidu.com.org/index.php
Server:apache
Content-Encoding:gzip [内容编码支持gzip压缩算法]
Content-Length:80
Content-Language:zh-cn
Content-Type:text/html;charset=GB2312
Last-Modified:Tue,11 Jul 2013 18:35:20 GMT [浏览器请求资源的最新时间]
Refresh:1;url=http://www.baidu.com [1s之后跳转到url指定位置]
Content-Disposition:attachement,filename=aaa.zip [客户端文件下载对话框]
Transfer-Encoding:chunked
Set-Cookie:SS=Qo=5Lb_nQ;path=/search
Expires:-1 /*
Cache-Control:no-cache 控制页面缓存,[Firefox,IE,Chrome标准不一致]
Pragma:no-cache */
Connection:close/Keep-Alive
Date:Tue,11 Jul 2013 18:50:24 GMT
/*******************************详细的http响应****************************/
HTTP常见状态码:
1XX 提示信息 - 表示请求已被成功接收,继续处理
2XX 成功 - 表示请求已被成功接收,理解,接受
3XX 重定向 - 要完成请求必须进行更进一步的处理
4XX 客户端错误 - 请求有语法错误或请求无法实现
5XX 服务器端错误 - 服务器未能实现合法的请求
(200 OK 这表明该请求被成功地完成,所请求的资源发送回客户端
302 Found
304 Not Modified
400 Bad Request 客户端请求与语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found
500 Internal Server Error 服务器发生了不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常)
302状态码的使用:(Location:新的页面)—〉可以跳转到外网。
304状态码:[客户端存在缓存信息,再次请求时服务器端未修改过请求的内容,返回的状态信息(Not Modified)]
404状态码:页面不存在。
常用的消息报头有:
HTTP_HOST:主机
REMOTE_ADDR:远程访问的ip
DOCUMENT_ROOT:WEB容器的主目录
REQUEST_URI:请求资源名
HTTP_REFEREN:请求的来源
//
HTTP/1.1 200 OK [客户端请求成功]
Server:Microsoft-IIS/5.0 [表示告诉浏览器,服务器的情况]
Date: Thu,13 Jul 2013 05:46:53 GMT [告诉浏览器 请求页面的时间]
Content-Length:2291 [表示服务器返回数据的字节数]
Content-Type:text/html [文档类型]
Cache-control:private [缓存]
/
Get/Post请求的区别:
1、 安全性:get请求的数据会显示在地址栏上,post请求的数据放在http协议的消息体。
2、 可提交数据量:http协议本身没有限制数据大小,浏览器在对get和post请求做显示。
3、 Get请求可以更好的添加到收藏夹。
防盗链技术(取出reference信息,比较请求url的形式。如http://localhost/…):