HTTP协议 常用 总结
① http协议是建立在tcp/ip协议基础上
② http协议全称 超文本传输协议
③ http协议1.0 , 1.1版本 ,目前通用的是1.1版本
http1.0 称为短连接 http1.1 称为长连接.
所谓长,和短指的是 持续时间的 长连接 1.1 30s ,短连接是发送完数据就断掉.
Http协议
HTTP 协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP 协议简单,使得HTTP 服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型Content-Type 加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
Http 请求由三部分组成,分别是:请求行、消息报头、请求正文
基本结构:
[消息头格式 (消息名: 内容 )
GET /test/hello.html HTTP/1.1 [请求行]
Accept: */* [消息名] 消息名:内容
Referer: http://localhost:8080/test/abc.html
Accept-Language: zh-cn
User-Agent: Mozilla/4.0
Accept-Encoding: gzip, deflate
Host: http://www.sohu.com:80
Connection: Keep-Alive
特别说明: 并不是每一次请求的消息头都一样.]
空行
发送的内容 [格式 : 内容名字=内容体]
http请求消息头
- 1 Accept: text/html,image/* [告诉服务器,我可以接受文本,网页,图片]
- 2. Accept-Charset: ISO-8859-1 [接受字符编码iso-8859-1]
- 3. Accept-Encoding: gzip,compress [可以接受 gzip,compress压缩后数据.]
- 4. Accept-Language: en-us,zh-cn [浏览器支持中,英文]
- 5. Host: www.sohu.com:80 [我要找主机是www.sohu.com:80]
- 6. If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT [ 告诉服务器,我的缓冲中有这个资源文件,该文件的时间是。。。]
- 7. Referer: http://www.sohu.com/index.jsp [告诉服务器,我来自哪里,该消息头,常用于防止盗链]
- 8. User-Agent:Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)[告诉服务器,浏览器内核]
- 9. Cookie [cookie??]
- 10. Connection:close/Keep-Alive [保持连接,发完数据后,我不关闭连接]
- 11. Date: Tue, 11Jul 2000 18:23:51 GMT [浏览器发送该http请求的时间]
请求行以一个方法符号开头,以空格分开,后面跟着请求的URI 和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF其中Method 表示请求方法;Request-URI 是一个统一资源标识符;HTTP-Version 表示请求的HTTP 协议版本;CRLF 表示回车和换行(除了作为结尾的CRLF 外,不允许出现单独的CR 或LF 字符)。
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET 请求获取Request-URI 所标识的资源
POST 在Request-URI 所标识的资源后附加新的数据
HEAD 请求获取由Request-URI 所标识的资源的响应消息报头
状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
格式:HTTP版本号 状态码 原因叙述
举例:HTTP/1.1 200 OK
状态码 含义
100-199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200-299 表示成功接收请求并完成整个处理过程,常用200
300-399 为完成请求,客户需要进行一步细化请求。例如:请求的资源已经移动一个新的地址,常用302,307
400-499 客户端的请求有错误404
500-599 服务器端出现错误,常用500
- http响应消息头详解
- n Location: http://www.baidu.org/index.jsp 【让浏览器重新定位到url】
- n Server:apache tomcat 【告诉浏览器我是tomcat】
- n Content-Encoding: gzip 【告诉浏览器我使用 gzip】
- n Content-Length: 80 【告诉浏览器会送的数据大小80节】
- n Content-Language: zh-cn 【支持中文】
- n Content-Type: text/html; charset=GB2312 [内容格式text/html; 编码gab2312]
- n Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 【告诉浏览器,该资源上次更新时间】
- n Refresh: 1;url=http://www.baidu.com 【过多久去,刷新到 http://www.baidu.com】
- n Content-Disposition: attachment; filename=aaa.zip 【告诉浏览器,有文件下载】
- n Transfer-Encoding: chunked [传输的编码]
- n Set-Cookie:SS=Q0=5Lb_nQ;path=/search[后面详讲]
- n Expires: -1[告诉浏览器如何缓存页面IE]
- n Cache-Control: no-cache [告诉浏览器如何缓存页面火狐]
- n Pragma: no-cache [告诉浏览器如何缓存页面]
- n Connection: close/Keep-Alive [保持连接 1.1是Keep-Alive]
- n Date: Tue, 11 Jul 200018:23:51 GMT