当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

Java网络编程从入门到精通(20):HTTP协议简介[Java编程]

赞助商链接



  本文“Java网络编程从入门到精通(20):HTTP协议简介[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1、什么是HTTP协议

HTTP协议是一种利用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写.HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据.HTTP协议主要用于Web浏览器和Web服务器之间的数据交换.我们在利用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入http://host:port/path,开首的4个字母http就相当于告诉浏览器利用HTTP协议来和host所肯定的服务器举行通讯.

HTTP协议诞生于上世纪90年代初;第一个被遍及利用的版本是HTTP0.9.这个最初的版本非常粗陋,它只向服务器发送一个非常简单的恳求,而服务器也会返回一个很简单的呼应以及呼应的HTML文本.在随后的HTTP1.0中,增添了很多在HTTP0.9中没有的特点,如增添了资源重定位,大量的状况呼应码等.在最新的HTTP1.1中,对HTTP1.0做了更进一步的改良,除了增添了一些恳求办法外,最大的改良就是可以使HTTP保持衔接状况.这关于一些频繁传输数据的利用是非常有益的.由于HTTP协议已经到达了它的目标,因此,负责拟定标准的W3C已经终止了对HTTP的改良(和HTTP相关的协议或扩大并未终止),所以,HTTP1.1将是HTTP协议的最后一个版本.

无论你是从事网络程序开辟,还是Web开辟,或是网站的保护人员;都必须对HTTP协议有一个对比深化的理解.因此,HTTP协议不但是Internet上利用最为遍及的协议,也是利用协议家族中对比简单的一种入门级协议;并且全部的Web服务器无一例外地都支持HTTP协议.这也充分地阐明,关于那些开辟网络程序,特别是开辟各种范例的Web服务器的开辟人员,透彻地掌握HTTP协议将对你所开辟的基于HTTP协议的系统产生直接的影响.

由于本文的目的并非讲授HTTP协议,因此,只谈论了HTTP协议的主要部份,假如读者对HTTP协议感性趣,并想深化理解HTTP协议,请查看RFC2616或通过www.w3c.org来理解HTTP协议的详情.

2、HTTP的工作方法

HTTP协议采取了恳求/呼应的工作方法.基于HTTP1.0协议的客户端在每次向服务器发出恳求后,服务器就会向客户端返反呼应消息(包含恳求能否精确以及所恳求的数据),在确认客户端已经收到呼应消息后,服务端就会关闭网络衔接(其实是关闭TCP衔接).在这个数据传输历程中,并不保存任何历史信息和状况信息,因此,HTTP协议也被认为是无状况的协议,图1描绘了HTTP1.0协议的通讯历程.

图1  HTTP1.0协议的通讯历程

在HTTP1.0协议中,当Web浏览器发出恳求时,就意味着一个恳求/呼应会话已经开始.在恳求、呼应完毕后,服务器就会立即关闭这个衔接.这种会话方法固然简便,但它会带来别的一个问题.假如客户端浏览器拜候的某个HTML或其他范例的Web页中包含有其他的Web资源,如JavaScript文件、图象文件、CSS文件等;当浏览器每碰到这样一个Web资源,就会成立一个HTTP会话.假如这样的资源很多的话,就会加重服务器的负担,同时也会影响客户端浏览器加载HTML等Web资源的效率.

在对上述的缺陷举行改良和完善后,HTTP1.1协议进入了我们的视野.HTTP1.1和HTTP1.0相对比而言,最大的辨别就是增添了长期衔接支持.当客户端利用HTTP1.1协议衔接到服务器后,服务器就将关闭客户端衔接的主动权交还给客户端;也就是说,在客户端向服务器发送一个恳求并接纳以一个呼应后,只要不调用Socket类的close办法关闭网络衔接,便可以持续向服务器发送HTTP恳求.当HTML中含有其他的Web资源时,浏览器便可以利用同一个网络衔接向下载这些资源,这样便可以大大减轻服务器的压力.图2演示了这一历程.

图2  HTTP1.1协议的通讯历程

HTTP1.1除了支持长期衔接外,还将HTTP1.0的恳求办法从本来的三个(GET、POST和HEAD)扩大到了八个(OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT).并且还增添了很多恳求和呼应字段,如上述的长期衔接的字段Connection.这个字段有两个值,Close和Keep-Alive.假如利用Connection:Close,则关闭HTTP1.1的长期衔接的功效,要翻开HTTP1.1的长期衔接的功效,必须利用Connection:Keep-Alive,大概不加Connection字段(因为HTTP1.1在默许情形下就是长期衔接的).除了这些,还供应了身份认证、状况管理和缓存(Cache)等相关的恳求头和呼应头.


  以上是“Java网络编程从入门到精通(20):HTTP协议简介[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .