HTTP协议

来源:互联网 发布:java 工作流引擎有哪些 编辑:程序博客网 时间:2024/06/18 04:08

一、简介

HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTP协议是以请求/响应为模型为基础的一个协议,并且永远都是客户端先发起请求,服务器回头响应。这样就限制了HTTP协议的使用,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。如下图:


二、特点

         1、支持B/S模式及C/S模式。

    2、简单快捷:客户端向服务器请求服务时,只需传送请求方法和路径。并且每种请求方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,所以HTTP服务器的程序规模小,因而通信速度很快。

    3、灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type来标记。

    4、无连接:无连接的含义是指限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,服务器会主动断开连接。

    5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面 的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


三、工作流程

 一次HTTP操作称为一个事务,其工作流程可以分为四步:

   (1)、首先客户端需要连接到服务器

     一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。


   (2)、建立连接后,客户端发送一个HTTP请求给服务器

     通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部     分组成 。

   (3)、服务器接受请求并返回HTTP响应

     Web服务器解析请求,定位请求资源,服务器将资源副本写到TCP套接字,由客户端读取,一个响应由状态行、响应头部、     空行和请求数据4部分组成。

   (4)、释放TCP连接

     服务器主动关闭TCP套接字,释放TCP连接 ; 客户端被动关闭TCP套接字,释放TCP连接。


四、HTTP之请求与响应

1、Request

客户端发送一个HTTP请求到服务器的请求消息包括:请求行、请求头部、空行和请求数据。

   

2、Response

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

         





原创粉丝点击