Http宏观运行流程和微观结构
HTTP运行流程简介
https://mp.weixin.qq.com/s/27zpNIGhVbx-on9FDs_6dw
描述了http的工作原理,图多,虽然省略了路由的一些细节。
HTTP报文结构初探
https://juejin.im/post/5ba65296f265da0ac8493503
这篇文章质量很高!
Request
Request Line
Method
GET: 请求获取Request-URI所标识的资源(Restful CURD中的查询)
POST: 在Request-URI所标识的资源后增加新的数据(Restful CURD中的修改)
PUT: 请求服务器存储或修改一个资源,并用Request-URI作为其标识(Restful CURD中的tiNJINO)
DELETE: 请求服务器删除Request-URI所标识的资源(Restful CURD中的删除)
HEAD: 请求获取由Request-URI所标识的资源的响应消息报头
TRACE: 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT: 保留将来使用
OPTIONS: 请求查询服务器的性能,或者查询与资源相关的选项和需求
Request-URI
什么是HTTP URL!不过URI是什么,URN是什么?可以参考一下https://www.cnblogs.com/chengdabelief/p/6635045.html
“URI可以分为URL,URN或同时具备locators 和names特性的一个东西。URN作用就好像一个人的名字,URL就像一个人的地址。换句话说:URN确定了东西的身份,URL提供了找到它的方式。”
HTTP Version
http1.0
http1.1
http2.0
它们和https的区别又是哪些?没有需求,先Mark一下,以后有需求了后头再思考。
Request Header
Accept:
Accept-Charset:浏览器可以接受的字符编码集
Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型
Accept-Language 浏览器可接受的语言
Connection:表示是否需要持久连接(HTTP 1.1默认进行持久连接)
Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
Content-Length:请求的内容长度
null line
Request Body
POST有,但GET没有
Response
Response line
HTTP Version
这个和Request里一样的。
Status Code
https://juejin.im/post/5a276865f265da432c23b8d2#heading-9
描述了常见状态码的图解
HTTP的优点、缺点和特点
(1)特点:
无连接:每次TCP连接只处理一个请求
无状态:没有记忆能力,由无连接导致。
(2)优点:
简单快速:没有太深的体会,毕竟基于TCP,它比谁简单快速了?
灵活:感受不太深,和谁比较算灵活?
(3)缺点:
安全性不够高,所以拿速度换安全-----浏览的网站基本都是采用HTTPS了。