HTTP详解

http://www.cnblogs.com/engeng/articles/5959335.html


HTTP会话的四个过程
1. 建立tcp连接
2. 发出请求文档
3. 发出响应文档
4. 释放tcp连接



HTTP协议

客户端连上web 服务器后,若想获得 web 服务器中的某个 web 资源,需遵守一定的通讯格式, HTTP 协议用于定义客户端与 web 服务器通迅的格式。

WEB浏览器与 WEB 服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是 HTTP 协议。

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

HTTP协议的版本 

HTTP/1.0、 HTTP/1.1

HTTP协议是学习 JavaWEB 开发的基石,不深入了解 HTTP 协议,就不能说掌握了 WEB 开发,更无法管理和维护一些复杂的 WEB 站点。深入理解 HTTP 协议,对管理和维护复杂的 WEB 站点、开发具有特殊用途的 WEB 服务器程序具有直接影响。


HTTP 1.0的会话方式

浏览器与WEB 服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与 WEB 服务器都要建立一次单独的连接。 浏览器到 WEB 服务器之间的所有通讯都是完全独立分开的请求和响应对。

四个步骤:


支持代理:


HTTP 1.1的特点 

在一个TCP 连接上可以传送多个 HTTP 请求和响应  

多个请求和响应过程可以重叠进行

增加了更多的请求头和响应头 

HTTP1.0和 HTTP1.1 的区别

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

HTTP1.1协议,允许客户端与 web 服务器建立连接后,在一个连接上获取多个 web 资源。

HTTP请求的细节——请求行

请求行中的GET 称之为请求方式,请求方式有:

POST、 GET 、 HEAD 、 OPTIONS 、 DELETE 、 TRACE 、 PUT

常用的有: GET 、  POST

用户如没有设置,默认情况下浏览器向服务器发送的都是get 请求,例如在浏览器直接输地址访问,点超链接访问等都是 get ,用户如想把请求方式改为 post ,可通过更改表单的提交方式实现。

不管POST 或 GET ,都用于向服务器请求某个 WEB 资源,这两种方式的区别主要表现在数据传递上:

如请求方式为GET 方式,则可以在请求的 URL 地址后以 ? 的形式带上交给服务器的数据,多个数据之间以 & 进行分隔,例如:

GET /mail/1.html?name=abc&password=xyz HTTP/1.1

GET方式的特点:在 URL 地址后附带的参数是有限制的,其数据容量通常不能超过 1K 。

如请求方式为POST 方式,则可以在请求的实体内容中向服务器发送数据, Post 方式的特点:传送的数据量无限制。


HTTP请求的细节——消息头

用于HTTP 请求中的常用头

Accept: text/html,image/*    

Accept-Charset: ISO-8859-1

Accept-Encoding: gzip,compress

Accept-Language: en-us,zh-cn 

Host: www.it315.org:80

If-Modified-Since: Fri, 11 Dec 2015 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: Fri, 11 Dec 2015 18:23:51 GMT

HTTP响应的细节——状态行

状态行

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

举例:HTTP/1.1 200 OK

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


响应状态码à典型情况


200(正常) 

表示一切正常,返回的是正常请求结果。

302/307(临时重定向)

指出被请求的文档已被临时移动到别处,此文档的新的URL 在 Location 响应头中给出。

304(未修改)

表示客户机缓存的版本是最新的,客户机应该继续使用它。

403(禁止) 

服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置所致。 

404(找不到) 

服务器上不存在客户机所请求的资源。

500(内部服务器错误) 

服务器端的CGI 、 ASP 、 JSP 等程序发生错误。


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


HTTP请求中的常用响应头

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: Fri, 11 Dec 2015 18:23:51 GMT

Refresh: 1;url=http://www.it315.org

Content-Disposition: attachment; filename=aaa.zip

Transfer-Encoding: chunked  

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

ETag: W/"7777-1242234904000"

Expires: -1

Cache-Control: no-cache  

Pragma: no-cache   

Connection: close/Keep-Alive   

Date: Fri, 11 Dec 2015 18:23:51 GMT




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值