您的位置:首页 > 理论基础 > 计算机网络

HTTP协议

2016-03-29 21:29 337 查看
一:HTTP协议简介  

        HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。  

        HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。  

        HTTP协议的版本:HTTP/1.0、HTTP/1.1

        注:HTTP1.0和HTTP1.1的区别  

        在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。获取一个web资源后客服端和服务器的连接就会断开。

        在HTTP1.1协议中,客户端与web服务器建立连接后,在一个连接上获取多个web资源。在获取一个web资源后,客服端和服务器的连接不会断开,可以继续获取web资源。 

二:HTTP请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。

        一个完整的HTTP请求包括如下内容:  一个请求行、若干请求头、以及实体内容,其中的一些请求头和实体内容都是可选的,请求头和实体内容之间要用空行隔开。

1,HTTP请求的细节------请求行

请求行:请求行用于描述客服端的请求方式,请求的资源名称,以及使用的HTTP协议的版本号;
请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT  
常用的请求方式有:POST、GET   
不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上,客户端通过这 两种方式都可以带一些数据给服务器:  
如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,
例如:   
GET /mail/1.html?name=abc&password=xyz HTTP/1.1   
GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量不能超过1K。 
如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,
例如:  
POST /servlet/ParamsServlet HTTP/1.1  
Host:  Content-Type: application/x-www-form-urlencoded  
Content-Length: 28   
name=abc&password=xyz  
Post方式的特点:传送的数据量无限制。

2,HTTP请求的细节——消息头

用于HTTP请求中的常用请求头
Accept: 用于告诉服务器,客户机支持的数据类型;
Accept-Charset: 用于告诉服务器,客户机采用的编码;
Accept-Encoding: 用于告诉服务器,客户机支持的数据压缩格式;
Accept-Language: 用于告诉服务器,客户机的语言环境;
Host: 用于告诉服务器,想访问的主机名;
If-Modified-Since: 用于告诉服务器,资源的缓存时间;
Referer: 用于告诉服务器,它是从哪个资源来访问服务器的(防倒链);
User-Agent: 用于告诉服务器,客服机的关键信息;
Cookie:客户机可以通过这个头向服务器带一些数据;
Connection: 请求处理完毕后,连接是否要断开;
Date: 表示请求发送的时间;

三:HTTP响应

        一个HTTP响应代表服务器向客户端回送的数据。

        它包括:  一个状态行、若干响应头、以及实体内容,其中的一些响应头和实体内容都是可选的,响应头和实体内容之间要用空行隔开。

1,HTTP响应的细节------状态行

状态行用于描述服务器对请求的处理结果。

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

举例:HTTP/1.1 200 OK 

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

    

状态含义
100~199表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200~299表示成功接收请求并已完成整个处理过程,常用200
300~399为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304
400~499客户端的请求有错误,常用404
500~599服务器端出现错误,常用500
2,HTTP响应细节------常用响应头 

HTTP响应细节——常用响应头 

HTTP请求中的常用响应头  

Location: 这个响应头配合302状态码使用,用于告诉客户机去找哪个资源;

Server:用于告诉浏览器,服务器的类型;

Content-Encoding: 用于告诉浏览器,响应数据的压缩格式;

Content-Length: 用于告诉浏览器,响应数据的长度;

Content-Type: 用于告诉浏览器响应数据的数据类型;

Last-Modified: 告诉浏览器当前资源的最后缓存时间;

Refresh: 告诉浏览器隔多久刷新一次,也可以刷新到其它页面,格式:1;url=http://www.it315.org 

Content-Disposition:告诉浏览器以下载方式打开数据;

Transfer-Encoding: 告诉浏览器数据的传送格式;

Expires: 告诉浏览器把响应的资源缓存多长时间 -1或0则是不缓存;

Cache-Control:no-cache   

Pragma:no-cache    上面这两个头,告诉浏览器不要缓存数据;

Connection: 连接是否断开;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: