HTTP实用指南| 青训营笔记

88 阅读3分钟

HTTP实用指南 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第9天

1 初识 HTTP

image.png

HTTP (Hyper Text Transfer Protocol)超文本传输协议 所谓的超文本可以承载多种体裁,比如处理页面所需要的HTML、CSS、JavaScript,以及和通信相关的Web APIs。

HTTP是应用层协议,HTTP的底层是基于TCP协议作为其传输层协议。 如下图所示,每个HTTP请求都会分为请求和响应两部分。

image.png

HTTP请求是语义简单的请求,并且在设计上提供很多可扩展的能力。(比如,可以自定义header,只要server和client可以彼此理解自定义header的含义即可)

HTTP协议是一个无状态的协议,每个请求之间是孤立的,当前的请求是不知道之前携带过什么信息或做过什么事情的。(但会通过某些方法让其带上状态信息)无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP协议是无连接的,每次请求一次,释放一次连接。所以无连接表示每次连接只能处理一个请求。优点就是节省传输时间,实现简单。缺点是容易造成占用资源不释放的问题。

因此,总结HTTP特点如下:

- 应用层协议,基于 TCP 协议

- 请求 & 响应

- 简单且可扩展

- 无状态

- 无连接

2 协议分析

image.png HTTP1.1标准版本的协议,支持长连接和请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。 HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。

以HTTP1.1协议为例,request和response是一致对应的,都有start line、HTTP headers、empty line、body几部分组成。request和response也各自有一部分特有的header,后面可以附带上各自的实体信息。 request:start line中要声明出这次请求所使用的方法、访问的目标地址 method path version response:start line中要返回这次请求处理的结果 version StatusCode StatusMessage

image.png

下面是每个具体的字段的取值和含义:

  • Method

image.png

-PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新

-PATCH:PUT 方法的补充,更新指定资源的部分数据

-DELETE:用于删除指定的资源

-OPTIONS: 获取服务器支持的HTTP请求方法,服务器性能、跨域检查等

-CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返 回给用户,网页开发基本不用这个方法,如果是http代理就会使用这个,让服务器代理用户去访问其他网页, 类似中介

-TRACE:回显服务器收到的请求,主要用于测试或诊断

image.png

个人总结与体会

通过本节课程老师的讲解,我深入学习了HTTP相关的实用内容,HTTP是前端开发中计算机网络基础知识中的内容,包含HTTP介绍以及协议分析等内容,需要好好巩固,打牢基础!