HTTP请求在客户端和服务端之间的工作流程学习

1、Http概述

1.1、Web客户端和服务器

web的内容都是存放在Web服务器上的,Web服务器使用的是HTTP协议,如图1-1所示,HTTP客户端和HTTP服务器共同构成了万维网的基本构件。
在这里插入图片描述

图1-1 HTTP客户端和服务器的关系
1.2、事务处理

通过翻阅相关资料得知,客户端是通过HTTP与Web服务器及其资源进行事务处理的。

一个HTTP事务由一条从客户端发往服务器的请求命令和一个从服务器发回客户端的响应结果组成。这种通信是通过HTTP报文的格式化数据来进行的,如图1-2所示。

在这里插入图片描述

图1-2 包含请求及其响应报文的HTTP事务
说明: Http/1.0 表示当前协议为HTTP,1.0是协议的版本,200表示成功,OK是一条解释性文本,为了进行描述,这里是指成功。
1.2.1、请求方法

HTTP支持几种请求方法,称为HTTP方法,每一条请求包含一个方法,这个方法告诉服务器需要执行什么样的动作,我将这几种方法列举下来,如表1-1所示。

表1-1 常见的HTTP方法
HTTP方法描述
Get从服务器向客户端发送命名资源
PUT将来自客户端的数据存储到一个命名的服务器资源中去
DELETE从服务器中删除命名资源
POST将客户端数据发送到一个服务器网关应用程序
HEAD仅发送命名资源响应中的HTTP首部
1.2.2、状态码

图1-2中有着一行数据为:http/1.0 200 ok,这里面的200便是状态码。每一条HTTP响应报文返回时都会携带一个状态码,状态码是一个三位数字的代码,我也将比较常见的HTTP状态码列举下来,如表1-2所示。

表1-2 常见的状态码
HTTP状态码描述
200OK,文档正确返回
302Redirect(重定向),到其他地方去获取资源
404Not Found(没有找到),无法找到这个资源
1.3、报文

HTTP报文是由一行一行的简单字符串组成的,HTTP报文都是纯文本,如图1-2所示,便是简单的HTTP报文。

HTTP报文主要分为两种:

  • 请求报文(request message):从web客户端发往Web服务器的HTTP报文,如图1-3所示;
  • 响应报文(response message):从web服务器发往web客户端的HTTP报文,如图1-3所示;

HTTP报文包括三个部分:

  • 起始行:处于报文的第一行
    • 在请求报文中说明要做些什么;
    • 在响应报文中说明出现了什么情况;
  • 首部字段:处于起始行之后的零个或者多个首部字段,都包含一个名字和一个值,便于解析;
  • 主体:处于首部字段空行之后,其中包含了所有类型的数据(图片、视频、音频、文本等);
    • 请求主体中包括了要发给web服务器的数据;
    • 响应主体中装载了要返回给客户端的数据。

在这里插入图片描述

图1-3 HTTP请求报文和响应报文
1.4、HTTP与TCP

HTTP是一个应用层协议,他不需要关心网络通信的具体细节,网络通信的细节都交给了传输协议:TCP。

TCP协议的特点如下:

  • 无差错的数据传输;
  • 按序传输,数据总是按照发送的顺序到达;
  • 未分段的数据流,可以在任意时刻以任意尺寸将数据发送出去。

因特网是基于TCP/IP的,TCP/IP是层次化分组交换网络协议集,只要建立了TCP连接,客户端和服务端之间的报文交换就不会丢失、不会被破坏、不会错序。HTTP使用TCP传输数据,他们之间的关系可以参考:图1-4 TCP/IP协议数据流示意图。

img
图1-4 TCP/IP协议数据流示意图
1.5、客户端和服务端之间如何通信

接下来我会用图文的方式来展示客户端和服务端之间通信的,首先展示一个基本的浏览器连接处理,如图1-5所示。

在这里插入图片描述

图1-5 浏览器连接请求

步骤如下:

  • 浏览器从URL解析出服务器的主机名;
  • DNS将服务器的主机名转换成原服务器的IP地址;
  • 浏览器将端口号(如果有的话)从URL中解析出来;
  • 浏览器建立一条与Web服务器的TCP连接;
  • 浏览器向服务器发送一条HTTP请求报文;
  • 服务参向浏览器回送一条HTTP响应报文;
  • 关闭连接,浏览器显示文档。

2、Web服务器

Web服务器实现了HTTP和相关的TCP连接处理,负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及拓展方面的管理。

2.1、Web服务器的工作流程

通过查阅资料我了解到,Web服务器一般都执行了以下的任务,如图2-1所示。

  • 建立连接,接受一个客户端连接,或者如果不希望与这个客户端建立连接,就
将其关闭;
  • 接收请求,从网络中读取一条HTTP请求报文.;
  • 处理请求,对请求报文进行解释,并釆取行动;
  • 访问资源,访问报文中指定的资源;
  • 构建响应,创建帯有正确苜部的HTTP响应报文;
  • 发送响应一将响应回送给客户端;
  • 记录事务处理过程,将与已完成事务有关的内容记录在一个日志文件中。

图2-1基本Web服务器请求的步骤
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值