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请求
  • 结束
posted @ 2025-06-04 17:48  北燃  阅读(40)  评论(0)    收藏  举报