HTTP协议
HTTP协议
SmartSageHTTP协议
1.HTTP协议简介
HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。
HTTP是基于TCP协议的
HTTP是无连接的
无连接的含义是限制每次连接只能处理一个请求,处理完请求后会断开连接
HTTP是无状态的
对于数据没有记忆能力。每次请求-响应都是独立的。请求之间不会共享数据
HTTP分为请求协议和响应协议
2.HTTP-请求协议
浏览器将数据以请求格式发送到服务器,由四部分组成:请求行,请求头,空行,请求体
一般格式:
请求行(Request Line):
- 方法:如 GET、POST、PUT、DELETE等,指定要执行的操作。
- 请求 URI(统一资源标识符):请求的资源路径,通常包括主机名、端口号(如果非默认)、路径和查询字符串。
- HTTP 版本:如 HTTP/1.1 或 HTTP/2。
请求行的格式示例:GET /index.html HTTP/1.1
请求头(Request Headers):
格式为key: value形式
包含了客户端环境信息、请求体的大小(如果有)、客户端支持的压缩类型等。
常见的请求头包括
Host
、User-Agent
、Accept
、Accept-Encoding
、Content-Length
等。
1 | Host: 表示请求的主机名 |
空行:
- 请求头和请求体之间的分隔符,表示请求头的结束。
请求体(可选):
在某些类型的HTTP请求(如 POST 和 PUT)中,请求体包含要发送给服务器的数据。
GET请求中,请求参数放在了请求行中的地址中
在HTTP1.1版本中,浏览器访问服务器的几种方式:
请求方式 | 请求说明 |
---|---|
GET | 获取资源。 向特定的资源发出请求。例:http://www.baidu.com/s?wd=http |
POST | 传输实体主体。 向指定资源提交数据进行处理请求(例:上传文件),数据被包含在请求体中。 |
OPTIONS | 返回服务器针对特定资源所支持的HTTP请求方式。 因为并不是所有的服务器都支持规定的方法,为了安全有些服务器可能会禁止掉一些方法,例如:DELETE、PUT等。那么OPTIONS就是用来询问服务器支持的方法。 |
HEAD | 获得报文首部。 HEAD方法类似GET方法,但是不同的是HEAD方法不要求返回数据。通常用于确认URI的有效性及资源更新时间等。 |
PUT | 传输文件。 PUT方法用来传输文件。类似FTP协议,文件内容包含在请求报文的实体中,然后请求保存到URL指定的服务器位置。 |
DELETE | 删除文件。 请求服务器删除Request-URI所标识的资源 |
TRACE | 追踪路径。 回显服务器收到的请求,主要用于测试或诊断 |
CONNECT | 要求用隧道协议连接代理。 HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 |
在我们实际应用中常用的也就是 :GET、POST
GET请求和POST请求的区别:
区别方式 | GET请求 | POST请求 |
---|---|---|
请求参数 | 请求参数在请求行中。 例:/brand/findAll?name=OPPO&status=1 |
请求参数在请求体中 |
请求参数长度 | 请求参数长度有限制(浏览器不同限制也不同) | 请求参数长度没有限制 |
安全性 | 安全性低。原因:请求参数暴露在浏览器地址栏中。 | 安全性相对高 |
3.HTTP-响应协议
一般格式
服务器将数据以响应格式返回给浏览器,包括:状态行 、响应头 、空行、响应体
状态行(Status Line)
响应数据的第一行。响应行由协议及版本
、响应状态码
、状态码描述
组成
响应头(Response Headers)
响应数据的第二行开始。格式为key:value形式
常见的HTTP响应头有:
1 | Content-Type:表示该响应内容的类型,例如text/html,image/jpeg ; |
空行
- 响应头和响应体之间的分隔符,表示响应头的结束。
响应体(可选):
响应数据的最后一部分。存储响应的数据
- 响应体和响应头之间有一个空行隔开(作用:用于标记响应头结束)
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果