前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你了解 HTTP 报文吗?

你了解 HTTP 报文吗?

作者头像
山月
发布2022-11-02 16:50:15
3390
发布2022-11-02 16:50:15
举报
文章被收录于专栏:服务器运维笔记

HTTPHyper Text Transfer Protocol 简写,超文本传输协议。在前端最重要的体现在于,浏览器(HTTP Client)与服务器(HTTP Server)之间的通信。

HTTP 是前后端沟通的桥梁,了解 HTTP 协议及报文相当重要。

1. HTTP 报文

HTTP 由请求(Request)及响应(Response)构成。报文格式如下,请忽略注释内容。

代码语言:javascript
复制
# 请求报文

# 首行由 Method Path Version 构成
# 每一行结尾是 \r\n
GET / HTTP/1.1
# 以下是请求头,Host 是请求的域名
Host: www.baidu.com
User-Agent: curl/7.79.1
Accept: */*

# 响应报文
# 相隔两个 \r\n,将会收到响应报文

# 首行由 Version StatusCode 状态描述符组成
HTTP/1.1 200 OK
# 以下是响应头
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 2443
Content-Type: text/html
Date: Wed, 31 Aug 2022 09:23:42 GMT
Etag: "58860402-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:18 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

# 响应体
# 相隔两个 \r\n,将会收到响应体
<!DOCTYPE html>
...

通过 curl -v https://www.baidu.com 可以获得完整的响应报文以及响应体。

2. HTTP Client/Server

HTTP 由请求以及响应组成,负责请求的被称为 HTTP Client,即 HTTP 客户端,而负责响应的被称为 HTTP Server,即HTTP 服务器端。

在后端中,他们的 nginx/django/express/koa 等,便是扮演 HTTP 服务器端的角色,「接收 HTTP 客户端的请求,分析路由、请求方法请求体,并返回对应的响应报文」

在前端中,浏览器便是扮演 HTTP 客户端的角色,从代码层面来说,我们使用的 fetch/axios 就是 HTTP 客户端,各种编程语言的请求库以及 curl 都可以视为 HTTP 客户端。

在前后端联调 API 时,团队经常使用的 API 管理工具,Apifox1 与 Postman2 也属于 HTTP 客户端。

在 Apifox1 中,可以通过导入 curl 生成各种语言请求库的请求。

3. 作业

  1. 什么是 \r\n
  2. 如何找到文件中的 \r\n
  3. HTTP 报文格式是什么样的
  4. 我们如何查看某此请求的 HTTP 报文
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. HTTP 报文
  • 2. HTTP Client/Server
  • 3. 作业
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档