青训营X豆包MarsCode技术训练营—HTTP协议(1)|豆包MarsCodeAI刷题

123 阅读4分钟

前言

首先呢我们了解下HTTP! HTTP(HyperText Transfer Protocol,超文本传输协议-可以承载多种体裁)是互联网上应用最为广泛的一种网络协议,用于客户端和服务器之间的通信。HTTP 是一种无状态的、面向事务的协议,是属于应用层协议,基于TCP协议。通常用于从 Web 服务器传输网页内容(如 HTML 文件、图像、JavaScript 文件等)到客户端浏览器。

HTTP

当我们打开浏览器后,我们会到浏览器的地址栏输入url字符串,然后页面就会进行渲染。http(应用层协议)的底层是基于TCP作为它的传输层协议。从协议的结构上看有(请求)Requests、(响应)Responses两个部分。对于请求来说有如下几个部分:

  1. 请求行(Request Line)
  2. 请求头(Request Headers)
  3. 请求体 (Request Body)

一:请求行是 HTTP 请求的第一行,包含以下三个部分,用空格分隔:

1.请求方法(Method):表示客户端希望服务器执行的操作,常见的方法有 GETPOSTPUTDELETE 等。

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 数据。请求体通常用于 POSTPUTPATCH 请求。

对于响应来说结构有类似于请求的: HTTP响应结构有:

  1. 状态行(Status Line)
  2. 响应头(Response Headers)
  3. 响应体(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的总结~~