该文章主要讲解一下http协议的基本知识
前言:通信
通信:即信息的传递和交换,但在这里我们主要介绍的是计算机之间的通信,即客户端和服务器之间的通信
通信三要素
通信三要素:
- 通信的主体
- 通信的内容
- 通信的方式
举个列子:客户端将学生信息通过post提交的方式交给服务器 1.一般来讲通信的对象既是主题,比如这里的通信主题就是客户端和服务器 2.这里的通信内容就是学生信息。学生信息是他们之间通信的数据。 3.这里的通信方式是post。
通信协议
定义: 通信双方完成通信所必须遵守的规则和约定,即通信双方采用约定好的格式来发送和接受消息,这种实现约定好的通信格式叫做通信协议。
互联网中的通信协议: 客户端和服务器之间实现网页内容的传输,则通信双发必须遵守网页内容的传输协议
因为网页内容叫做超文本,网页内容的传输协议叫做超文本传输协议,简称HTTP协议
HTTP协议
结合前文所讲HTTP协议既是客户端浏览器和服务器之间的通信协议。
HTTP协议即超文本传输协议,规定客户端和服务器之间进行网页内容传输时所必须遵守的协议: 1.客户端要以HTTP协议要求的格式把数据提交到服务器 2.服务器要以HTTP协议要求的格式把内容响应给客户端
而HTTP协议采用了请求/响应的交互模型:
请求消息
客户端发起的请求叫做HTTP请求,客户端发送到服务器的消息叫做HTTP请求消息,也叫做请求报文
请求消息组成
既是由请求行,请求头部,空行和请求体四个模块组成,但是请求体只有post请求才存在。
一. 请求行 请求行是由请求方式,URL,TTP协议版本组成,中间用空格隔开
二.请求头部
描述用户端的基本信息,从而把客户端相关信息告知服务器
多行键/值对组成,每行的键和值之间用英文冒号分隔 常见头部字段:
三.空行
最后一个请求头部字段的后面是一个空行,用来分隔请求头部和请求体
四.请求体
请求体存放着通过post方式提交到服务器的数据 ,但只有post请求有请求体,get请求没有请求体
响应消息
服务器响应给客户端的消息内容 ,也成为响应报文
响应消息组成
由状态行,响应头部,空行,响应体组成,和请求报文组成大同小异
一.状态行
由http协议版本,状态码,状态码描述文本组成,之间使用空格隔开
二.响应头部
描述服务器的基本信息,由多行键/值对组成,每行的键和值之间用英文冒号分隔
三.空行
通知客户端响应头部至此结束,用于分隔响应头部和响应体
四.响应体
存放着服务器响应给客户端的资源内容
请求方法
属于http协议的一部分,用来表明要对服务器上的资源执行的操作
响应状态码
属于http协议,用于标识响应发状态 响应状态码会随着响应消息一起被发送至客户端浏览器,浏览器根据服务器返回的响应状态码,就能知道这次HTTP请求的结果是成功还是失败了。
组成
三个十进制数字组成,第一个数字定义了状态码的类型,后两个数字用来对状态码进行细分
一.2**成功相关的响应状态码
表示服务器已成功接收到请求并进行处理
二.3**重定向相关的响应状态码
表示服务器要求客户端重定向,需要客户端进一步的操作以完成资源的请求
三.4**客户端错误相关的响应状态码
表示客户端的请求有非法内容从而导致这次请求失败
四.5**服务器错误相关的响应状态码
服务器未能正常处理客户端的请求而出现的意外错误
|