HTTP概述
📕概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
📕特点:
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型的:一次请求对应一次响应
- HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
- •缺点:多次请求间不能共享数据。
- •优点:速度快
📕插播知识点TCP与UDP协议:
- TCP:面向连接,三次握手与四次挥手保证了通信两端的连接,还有防止丢包的机制。日常生活中微信聊天发送消息等就是用的TCP协议。
- UDP:面向无连接,不可靠,只知道对方的ip和端口就能发送数据啦,无需建立连接,没有确认机制,即使因为网络等因素丢失数据包,UDP也不会收到任何返回的错误信息。例如视频通话,在网页上看视频等,这些丢失一点数据包并无大碍。
HTTP请求协议
请求数据包格式:
请求行:请求数据第一行(请求方式、资源路径、协议)
请求头:第二行开始(格式key:value)
📕GET方式
📕POST方式
📕请求头的key字段解释(了解)
- HOST:请求主机名
- User-Agent:浏览器版本
- Accept:浏览器能接受的资源类型,如test/*,image/*
- Accept-Language:浏览器支持的语言
- Accept-Ecoding:浏览器可以支持的压缩类型。
- Contect-Type:请求主体的数据类型
- Contect-Length:请求主体的大小(单位:字节)
注意:
GET请求方式没有请求体,它的请求参数在请求行中,GET请求大小有限制。这也就是为什么GET请求发送的数据直接显示在浏览器的地址栏上。
POST请求参数在请求体中,POST请求大小没有限制。
HTTP响应协议
📕响应协议与请求协议数据包的格式类似
📕我们重点看一下响应行中的状态码
📕常见响应状态码
在实际开发过程中这个状态码非常重要,特别是错误状态码,只有知道是什么错误,才好解决