C++ 进阶 day15 http
http的版本

HTTP报文格式
种类
- 请求报文:从客户端向服务器发送的请求报文
- 响应报文:从服务器端向客户端发送的应答
报文的组成部分
- 开始行:用于区分时请求报文还是响应报文
请求报文中,开始行也成为请求行
响应报文中,开始行也成为状态行 - 首部行:用来说明浏览器,服务器以及报文主体的一些信息
首部行可以有很多行,也可以没有
在每一个部行都有一个首部的字段名和它的值,中间使用冒号隔开,每一行的首部行中间使用回车换行隔开
整个首部行结束后,还有一个空行将首部行和后面的实体主体进行分割 - 实体主体:在请求报文中,一般不用。有时响应报文也可以没有
客户端请求报文格式

- 请求行由三部分组成,分别是请求方法,URL和版本,中间使用空格隔开
- 请求方法:就是对所请求的对象进行的操作,因此这些方法实际上也就是一些操作指令。因此,请求报文的类型是有她所指定的方法来决定的
- URL:统一资源定义符,就是要申请的资源路径
- 版本:HTTP版本,目前常用的使用HTTP1.1版本
- CR和LF:回车和换行
- 报文实例

常用的请求方法
- GET:用来请求URL的资源,并返回实体主体
- POST:指向定的资源提交数据并进行处理(例如提交的是表单或者上传文件)。数据被包含在实体主体部分,POST请求可能会导致新的资源的建立或者对已有资源的修改
- HEAD:类似于GET请求,但是返回的是响应中的首部,没有内容主体
- PUT:从客户端向服务器传送的是指定的文档内容
- DELETE:请求服务器去删除某些页面
- OPTION:请求一些选项的信息
- TRACE:用来进行环回测试使用的报文请求
- CONNECT:HTTP/1.1版本中预留给能够将连接改为管道方式的代理服务
响应报文格式

-
响应报文的首部也成为状态行:也由三部分组成,分别是版本、状态码和解释状态码的短语,中间也是有空格隔开
-
版本,就是HTTP版本
-
状态码:状态码是由三位数字组成,第一个数字定义了响应的类别,共分为5类
-
实体主体:可以有可以无,如果服务器需向客户端发送数据,则将数据放入到该处
-
响应报文实例:

状态码
- 1XX:指示信息---表示请求已经接收,继续处理
- 2XX:成功---表示请求已经被成功接收、理解以及处理。如200表示成功
- 3XX:重定向---表示要完成请求必须要进行更进一步的操作。如304
- 4XX:客户端错误---请求的语法错误或者请求无法实现
- 432:HTTP错误
- 400:客户端请求有语法错误,不能被服务器所解析
- 401:认证失败,请求未被接受
- 403:服务器收到请求,但是拒绝提供服务
- 404:请求的资源不存在,或者输入的URL有误
- 5XX:服务器错误---表示服务器未能实现合法的请求
- 500:服务器发生了不可预测的错误
- 503:服务器不能处理当前客户端的请求,一段时间后可能恢复正常
原理
- 开始
- 接收HTTP请求
- 解析HTTP请求
- 响应HTTP请求
- 结束

浙公网安备 33010602011771号