HTTP专题---概述
HTTP 概述
HTTP 协议作为工作生活中必不可少的一环,为人们熟知。作为程序开发人员更是密切与其打交道。因此,熟悉并掌握HTTP 还是很有必要的。
HTTP作为通信协议的重要基础,包含的内容太多,本节主要进行HTTP 协议的概述,从工作中经常用到的几部分进行详细的阐述。从简述HTTP 协议,以及作为网络通信一个重要环节,其所处的网络模型中哪个位置开始,之后就开始剖析其结构并简要说明原理,包括 事务、资源(如URL、MIME)、报文、连接、识别、认证以及安全HTTP等几个部分。(后续会补更和更新该系列文章)
一、简介和网络模型
对于网络的发展其实经历了很多阶段,标准也很多且相互间大都不兼容。后来ISO(International Orgnization for Standards,国际标准化组织)制定了一个国际标准OSI(Open Systems Interconnection,开放式通信系统)的七层网络模型。但由于该标准难度较大且实现较为复杂,反而是Internet工作小组IETF(Internet Engineering Task Force)推动的TCP/IP 标准模型(四层网络模型)以其相对简单易用赢得了更多关注,成为了事实上的标准。
以下为网络模型的结构示意图
由图中可以看出,HTTP 协议作为应用层协议,位于传输层(如TCP)之上。
二、请求响应模型和事务
HTTP是一个无状态的协议。所谓无状态就是指服务端不会记录客户端的状态,前一个请求不会影响后一个请求的结果,即每一次请求都当作新的请求处理。
HTTP请求响应模型如下:
一个请求响应过程亦即一个HTTP 事务,是由一条请求信息 和 一个响应结果组成。中间的通信通过HTTP报文的格式化数据块进行。
三、一个HTTP事务中的工作流程
1、建立连接——接受一个客户端连接, 或者如果不希望与这个客户端建立连接, 就
将其关闭。
2、接收请求——从网络中读取一条 HTTP 请求报文。
3、处理请求——对请求报文进行解释, 并采取行动。
4、访问资源——访问报文中指定的资源。
5、构建响应——创建带有正确首部的 HTTP 响应报文。
6、发送响应——将响应回送给客户端。
7、记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。
一个简单示例
可以通过在浏览器页面的按F12查看请求,每个请求都包含请求报文和响应报文,当然上方的General进行简要的概述,提供了通用信息。
该Tab显示的首部(请求首部和响应首部)信息。报文结构包含起始行、首部、空格、主体四个部分(当然,空格是起到分隔作用,可以归并到首部部分)。
本节概述内容暂且告一段落,后面按照各独立节点展开介绍。