码迷,mamicode.com
首页 > Web开发 > 详细

HTTP协议

时间:2015-06-07 20:17:17      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

1.概述

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),

这成为了HTTP超文本传输协议标准架构的发展根基。

Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,

最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

2.HTTP1.0、HTTP1.1区别

 HTTP1.0:客户端与web服务器建立连接后,只能获得一个web资源

 HTTP1.1:在一个连接上获取多个web资源

 是用telnet可以观察到HTTP1.o连接一次后需要重新再去连接、而1.1就不会

3.HTTP请求

 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求,一个完整的http请求包括如下内容:

 一个请求行、若干请求头、以及实体内容;如下所示:

 Get http://www.kk.com:8080//project/user/data_list.jsp HTTP/1.1

 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

 用于告诉服务器客户端支持的数据类型

 Accept-Encoding:gzip,deflate,sdch

 告诉服务器客户端支持的数据压缩格式

 Accept-Language:zh-CN,zh;q=0.8

 客户端的语言环境

 Connection:close/keep-alive

 意思是这个请求完成后,是保持连接还是关闭连接

 Cookie:JSESSIONID=2D038DE401B05C06B9C465AD52BA01E3

 Host:www.kk.com:8080

 客户端通过这个头告诉服务器、想访问的主机名

 Referer:http://www.kk.com:8080/

 客户端通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链)

 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36

 客户端通过这个头告诉服务器,客户端软件环境

4.HTTP响应

 一个HTTP响应代表服务器向客户端回送的数据,它包括:

 一个状态行、若干消息头、以及实体内容。

 响应 HTTP/1.1 200 OK
 Server Apache-Coyote/1.1
 Content-Type text/html;charset=UTF-8
 Content-Length 1342
 Date Sun, 07 Jun 2015 07:11:44 GMT

 状态行:

 格式:HTTP/版本号 状态码 原因描述<CRLF>

          举例:HTTP/1.1 200 OK

 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:

 

状态码 含义
100~199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理结果
200~299 表示成功接收请求并已完成整个处理过程 常用200
300~399 为完成请求,客户需进一步细化请求,例如:请求的资源已经移动到一个新地址,常用302、307和304
302、3067:资源存在却没有权限访问
304:资源转发给别人
400~499 客户端的请求错误,常用404 403
500~599 服务器端出现错误,常用500

 HTTP请求中的常用响应头:

 Location:http://www.kk.com/index.jsp 配合302状态码使用,用于高速客户找谁

 server:apache tomcat 告诉浏览器服务器类型

 Content-Encoding: gzip  告诉客户端数据的压缩格式

 Content-Length:90 告诉浏览器回送数据的长度

 Content-Language:zh-cn  告诉浏览器语言

 Content-Type:text/html; charset=UTF-8 告诉浏览器回送数据的类型 

 Last-Modified:Tue,11 Jul 2000 18:00:00 GMT 告诉浏览器当前缓存时间

 Refresh:1;url=htttp://www.google.com.hk 告诉浏览器隔多长时间刷新一次

 Content-Dispostion:attachment;filename=test.zip 告诉浏览器以下载的方式打开数据

 Transfer-Encoding:chunked 告诉浏览器数据的传递格式

 Set-Cookie:SS=Q0=5LBnQ;path=/search 

 ETag:W/"7777-123423238" 缓存消息的头

 Expires:-1 告诉浏览器把回送的资源缓存多长时间,-1或0表示不缓存

 Cache-Control:no-cache 

 Pragma:no-cache

 通过以上两个头,控制浏览器不缓存数据

 Connection:close/Keep-Alive

 Date:Tue,11 Jul 2000 18:00:00 GMT


 




HTTP协议

标签:

原文地址:http://blog.csdn.net/jj88888/article/details/46401161

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!