HTTP协议

HTTP协议简介

HTTP 协议 全称是 超文本传输协议,通讯双方是 客户端服务端

由于简洁方便,在手机与服务器、服务器与服务器、浏览器与服务器的通讯中都广泛使用,是 通讯 的首选协议之一。

最广泛使用的是HTTP/1.1版本

HTTP3 以前版本 (除了HTTP3) , 都是 基于 TCP 协议的, 所以要进行通讯,客户端 必须先 和服务端 创建 TCP 连接。

而且 HTTP 双方的信息交互,必须是这样一种方式:

  • 客户端 先发送 http请求(request)给 服务端

  • 然后服务端 发送 http响应(response)给 客户端

特别注意:HTTP协议中,服务端不能主动先发送信息给 客户端。

而且在1.1 以前的版本, 服务端 返回响应给客户端后,连接就会 断开 ,下一次双方要进行信息交流,必须重复上面的过程,重新建立连接,客户端发送请求,服务返回响应。

到了 1.1 版本, 建立连接后,这个连接可以保持一段时间(keep alive), 这段时间,双方可以多次进行 请求和响应, 无需重新建立连接。

HTTP请求消息

http请求消息部分组成

请求行 request line

http请求的第一行的内容,表示要操作什么资源,使用的 http协议版本是什么。

包含了3部分信息: 请求的方法,操作资源的地址url, 协议的版本号

GET /mgr/login.html HTTP/1.1

GET请求:获取资源,从服务器 获取 资源信息,

POST请求:添加资源信息,添加 资源信息 到 服务器进行处理(例如提交表单或者上传文件)

PUT请求:请求服务器 更新 资源信息 

DELETE请求:请求服务器 删除 资源信息 

HTTP还有许多其他方法,比如 PATCH、HEAD 等,不是特别常用

请求头 request headers

请求头是http请求行下面的 的内容,里面存放 一些 信息。

比如,请求发送的服务端域名是什么, 希望接收的响应消息使用什么语言,请求消息体的长度等等。

消息体 message body

协议规定 需要在 消息头和消息体 之间 插入一个空行, 隔开

请求的url、请求头中 可以存放 一些数据信息, 但是 有些数据信息( POST、PUT等请求,添加、修改的数据信息),往往需要 存放在消息体中。

HTTP响应消息

HTTP响应消息部分组成

状态行 status line

状态行在第一行,表示  服务端对客户端请求的处理结果

包含了3部分信息:协议版本、状态码(Code)、描述状态语句

常见的状态码:

2xx:通常 表示请求消息 没有问题,而且 服务器 也正确处理了。

3xx:这是重定向响应,常见的值是 301,302, 表示客户端的这个请求的url地址已经改变了, 需要 客户端 重新发起一个 请求 到另外的一个url。

4xx:

表示客户端请求有错误, 常见的值有:

400 Bad Request 表示客户端请求不符合接口要求,比如格式完全错误

401 Unauthorized 表示客户端需要先认证才能发送次请求

403 Forbidden 表示客户端没有权限要求服务器处理这样的请求, 比如普通用户请求删除别人账号等

404 Not Found 表示客户端请求的url 不存在

5xx:

表示服务端在处理请求中,发生了未知的错误。

通常是服务端的代码设计问题,或者是服务端子系统出了故障(比如数据库服务宕机了)

响应头 response headers

响应头 是 响应状态行下面的 的内容,里面存放 一些 信息。 作用 和 格式 与请求头类似

消息体 message body

协议规定 需要在 消息头和消息体 之间 插入一个空行, 隔开

本文仅用于学习过程中笔记使用;

资料来源:

白月黑羽-Web 开发简介 - 白月黑羽

  • 28
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值