前言
首先呢我们了解下HTTP! HTTP(HyperText Transfer Protocol,超文本传输协议-可以承载多种体裁)是互联网上应用最为广泛的一种网络协议,用于客户端和服务器之间的通信。HTTP 是一种无状态的、面向事务的协议,是属于应用层协议,基于TCP协议。通常用于从 Web 服务器传输网页内容(如 HTML 文件、图像、JavaScript 文件等)到客户端浏览器。
HTTP
当我们打开浏览器后,我们会到浏览器的地址栏输入url字符串,然后页面就会进行渲染。http(应用层协议)的底层是基于TCP作为它的传输层协议。从协议的结构上看有(请求)Requests、(响应)Responses两个部分。对于请求来说有如下几个部分:
- 请求行(Request Line)
- 请求头(Request Headers)
- 请求体 (Request Body)
一:请求行是 HTTP 请求的第一行,包含以下三个部分,用空格分隔:
1.请求方法(Method):表示客户端希望服务器执行的操作,常见的方法有 GET、POST、PUT、DELETE 等。
2.请求URI(Request-URI):表示请求的资源地址,可以是绝对路径或相对路径。
3.HTTP版本(HTTP-Version):表示使用的 HTTP 协议版本,通常是 HTTP/1.1。
GET:请求指定的资源,通常用于获取数据。
POST:向指定资源提交数据,通常用于提交表单数据。
PUT:更新指定资源的数据。
DELETE:删除指定资源。
HEAD:请求指定资源的头部信息,不返回资源本身。
CONNECT:建立一个到由目标资源标识的服务器的隧道。
OPTIONS:请求指定资源的通信选项。
TARCE:沿着到目标资源的路径执行一个消息环回测试
PATCH:对指定资源进行部分更新。
二: 对于请求头来说呢?请求头是一系列键值对,每对之间用冒号分隔,每对之间用回车换行符(\r\n)分隔。请求头提供了关于请求的附加信息,如客户端类型、接受的内容类型、认证信息等。
常见请求头:
Host:请求的主机名和端口号。
User-Agent:客户端的浏览器类型和版本。
Accept:客户端可以接受的内容类型。
Accept-Language:客户端可以接受的语言。
Accept-Encoding:客户端可以接受的编码方式。
Authorization:用于身份验证的凭据。
Content-Type:请求体的 MIME 类型。
Content-Length:请求体的长度(字节数)。
三:请求体(Request Body,可选)
请求体包含客户端发送给服务器的数据,如表单数据或 JSON 数据。请求体通常用于 POST、PUT 和 PATCH 请求。
对于响应来说结构有类似于请求的: HTTP响应结构有:
- 状态行(Status Line)
- 响应头(Response Headers)
- 响应体(Response Body,可选)
一:状态行是 HTTP 响应的第一行,包含以下三个部分,用空格分隔:
HTTP版本(HTTP-Version):表示使用的 HTTP 协议版本,通常是 HTTP/1.1。
状态码(Status Code):表示请求的结果,是一个三位数字。 常见的状态码有:200客户端请求成功。301:资源(网页等)被永久转移到其它的URL 302:临时跳转 400:参数不合法 401:请求未经过授权 404:请求资源不存在,可能是输入了错误的URL 500:服务器内部发生了不可预期的错误 504:网关或者代理的服务器无法在规定的时间内获得想要的响应。
状态消息(Reason Phrase):是对状态码的简短描述。
二:响应头(Response Headers)
响应头是一系列键值对,每对之间用冒号分隔,每对之间用回车换行符(\r\n)分隔。响应头提供了关于响应的附加信息,如服务器类型、内容类型、缓存控制等。
常见响应头有:
Date:服务器生成响应的日期和时间。
Server:服务器的软件名称和版本。
Content-Type:响应体的 MIME 类型。
Content-Length:响应体的长度(字节数)。
Cache-Control:缓存控制指令。
Set-Cookie:设置客户端的 Cookie。
Location:用于重定向的 URL。
三: 响应体(Response Body,可选)
响应体包含服务器返回给客户端的数据,如 HTML 文档、JSON 数据等。
好啦这是本次关于HTTP的总结~~