HTTP协议

为什么要有HTTP

通信是将数据从A结点发送到B结点,可是仅仅将数据交给B就可以了吗?
举个栗子:在淘宝购物,当卖家发送货物由物流将货物运输给买家就ok了吗?肯定不是,买家会检查商品,会使用商品,还会给评价。我们知道,TCP/IP是传输层的协议,所以TCP/IP就相当于物流公司,而两端还需要对数据进行加工处理或者使用,所以还需要一层协议,不关心通信,而关注使用细节。这层协议就是应用层协议,而应用是有不同场景的,所以就有不同种类,Http就是应用层的一种协议

HTTP是什么

HTTP(Hyper Text Transfer)是超文本传输协议,是应用层上的一个协议,是基于TCP/IP模型协议模型来传输数据

HTTP特点

  • 传输效率高
  1. 无连接:交换HTTP报文前,不需要建立HTTP连接
  2. 无状态:数据传输过程中,不保存任何数据信息。比如第一次传输了数据后,就断开连接,直接进行第二次传输,如果两次传输的用户是相同的,不会被识别,必须再次传送
  3. 传输格式简单:传输时,只用传输方法和路径
  • 传输可靠性高:HTTP的底层是TCP/IP,TCP是可靠性传输

HTTP之请求Request

在这里插入图片描述
请求包括请求行、请求头、空行和请求正文

请求行:请求方法 请求资源(URL) 请求版本
请求头:紧接着请求行下一行,请求的属性,冒号分割的键值对;每组属性之间用\n分隔,如果遇到空行标识请求头结束
空行:请求头后的空行是必须的
请求正文:空行后面的是请求正文,body允许为空字符串,当body有内容时,会在Header中有一个Content——Length 表明正文的长度
在这里插入图片描述

HTTP之响应Response

在这里插入图片描述
服务器接收到客户端发来的请求时,会接收请求,解析请求,然后给客户端发送HTTP响应
响应包含状态行、响应头、空行、响应正文

状态行:版本号 状态码 状态码的描述
响应头:在状态行的下一行,包含一些属性信息
空行:响应头后必须有空行,和请求一样
响应正文:服务器返回给客户端的信息

在这里插入图片描述

HTTP请求方法

请求方法说明
GET获取资源,返回报文实体
HEAD获取资源,只有报文头部
POST向指定资源提交数据进行处理请求,数据被包含在请求体
PUT传输文件
DELETE请求服务器删除文件

常用的是GET、POST

GET 和 POST 区别

  • get 请求是从服务器上获取资源,post 是用来向服务器提交数据
  • get 携带数据会将数据添加到 URL 中,而 post 提交数据将数据放在header 中或 body 中
  • get 传输的数据要受到 URL 长度限制(1024字节),post 可以传大量数据
  • 使用 get 参数会显示在地址栏,不安全,而 post 相对安全

HTTP响应状态码

在这里插入图片描述

常见状态码

  1. 200 OK:客户端请求成功
  2. 301 永久移动:请求的网页已移动到新位置,服务器返回此响应时,会自动将请求者转到新位置
  3. 302 临时移动:服务器目前从不同位置的网页响应请求,但请求者应继续用原有位置进行以后的请求
  4. 307 临时重定向:服务器目前从不同位置的网页响应请求,但请求者应继续用原有位置进行以后的请求
  5. 400 错误请求:服务器不理解请求语法
  6. 403 禁止:表示对请求的资源被服务器拒绝
  7. 404 Not Found:找不到请求的资源的访问
  8. 405:请求中指定的请求方法不能被用于请求相应的资源
  9. 500 服务器内部错误:服务器内部遇到错误,无法完成请求
  10. 505:HTTP版本不支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值