前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一起来烧脑】底层HTTP深入笔记

【一起来烧脑】底层HTTP深入笔记

作者头像
达达前端
发布2019-07-22 11:09:12
4680
发布2019-07-22 11:09:12
举报
文章被收录于专栏:达达前端

了解Web和网络基础,了解HTTP协议,HTTP报文内的HTTP信息,返回结果的HTTP状态码,了解Web服务器,了解HTTP首部,了解安全的HTTPS,确认访问用户身份的认证,基于HTTP的功能追加协议,构建Web内容的技术,Web的攻击技术。

浏览器客户端发送请求,到服务器,服务器返回的状态码正常为2xx,不正常为状态码4xx,5xx

使用http协议访问web,浏览器客户端地址栏输入url,发送请求到服务器端,从服务器端获取回复,内容就会显示在web页面上,这些内容不是凭空出现的,是根据web浏览器地址栏中的Url,从服务器端获取的资源文件等信息,显示的。

通过发送请求想服务器获取资源的Web浏览器,都可以叫做客户端。

代码语言:javascript
复制
Set WshShell = 
WScript.CreateObject
("WScript.Shell")
WshShell.AppActivate "女朋友"
for i = 1 to 23
WScript.Sleep 23
WshShell.SendKeys "^v"
WshShell.SendKeys i
WshShell.SendKeys "%s"
Next
vbs

web使用一种名为http的协议作为规范,超文本传输协议,完成从客户端到服务器端等一系列工作流程,协议是两者规则的约定,web的通信是建立在http协议上的。

背景让远离两地的朋友们能共享文件,基本理念:

借助多文档之间相互关联形成的超文本,连成可相互参阅的www,即万维网。

即刻出现作为网页,页面的文本标记语言,为HTML,超文本标记语言,文档之间传输的协议http,超文本传输协议,指定文档所在地址的URL为统一资源定位符。

image.png

世界上第一天web服务器和web浏览器在1990年11月诞生

HTTP/1.1 1997 年 1 月公布为目前主流的 HTTP 协议版本

HTTP协议是为了解决文本传输

网络基础 TCP/IP TCP/IP 协议族 TCP/IP 协议族包含HTTP TCP/IP 是互联网相关的各类协议族的总称

TCP/IP 的分层管理

TCP/IP 协议族按层次分别分 为以下 4 层:

应用层、传输层、网络层和数据链路层。

划分为各层的原因是如果有某部分做了变动,就可以只需要把变动的那层替换掉就行。

那么应用层是干嘛的呢,应用层决定了向用户提供应用服务时通信的活动。

HTTP 协议处于应用层

传输层 传输层提供了处于网络连接中的两台计算机之间的数据传输。

网络层 网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数 据单位。

链路层 用来处理连接网络的硬件部分。

TCP/IP 通信传输流

image.png

TCP/IP 协议族进行网络通信时,会按照分层顺序进行通信,客户端(发送端)从应用层往下走,服务端(接收端)从下往上走。

image.png

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部去掉。

与 HTTP 关系密切的协议 : IP、TCP 和 DNS

负责传输的 IP 协议 IP协议位于网络层 IP 协议的作用是把各种数据包传送给对方。

IP地址指明了节点被分配到地址,MAC地址是指网卡所属的固定地址。IP地址和MAC地址进行配对。

TCP 协议 TCP 位于传输层,提供可靠的字节流服务

TCP协议是为了更容易传送大量的数据才把数据进行分隔的,TCP协议能够确认数据最终是否送达到对方。

为了确保数据准确无误的送达,TCP协议的三次握手出现了,TCP协议把数据包送出去后,会进行确认,一定会想对方确认是否成功到达。

三次握手:

发送端,发送带有SYN的数据包,到接收端

接收端,接收到发送端发的数据包,并发送带有SYN/ACK的数据包,给发送端

发送端,接收到SYN/ACK的数据包后,发送带有ACK的数据包,到接收端

负责域名解析的 DNS 服务

DNS服务是和 HTTP 协议一样位于应用层的 协议。

提供域名到IP地址之间的解析服务

IP地址,主机名,域名

用户通过使用主机名或域名来访问其他的计算机。

不是通过IP地址访问。

DNS 服务 DNS 协议提供通过域名 查找 IP 地址,或逆向从 IP 地址反查域名的服务。

发送端,想要访问某个网页,发送端说:把它的IP地址告诉我吧,DNS,把对应的IP地址发送给客户端,然后发送端向IP地址发送给了服务器,进行请求。

各种协议与 HTTP 协议的关系

客户端,说我想要浏览这个页面,告诉我xxx的IP地址吧,跟DNS说,DNS接收到客户端发送的消息,返回IP地址给客户端,http的协议,就是生成针对目标we服务器的HTTP的请求报文,请给我这个页面的资源,TCP协议的作用就是为了方便通信,将HTTP请求报文分割成文段,一段一段的按序号分为多个把每个报文段可靠地传给对方。

IP协议就是搜索对方的地址,一边中转一边传送

tcp协议的 从对方那里接收到的报文段,重组到达的报文段,按序号以原来的顺序重组请求报文

http协议 对web服务器请求的内容,发送客户端想要的资源

通过服务器发送给客户端,请求的处理结果同样利用tcp/ip通信协议向用户进行回传。

URI 和 URL

URI 统一资源标识符 URL 统一资源定位符

ur: 协议方案名,登录信息,服务器地址,服务器端口号,带有层次的文件路径,查询字符串,片段标识符

了解HTTP协议 HTTP 协议用于客户端和服务器端之间 的通信

请求访问文本或图像等资源的一端称为客户端 提供资源响应的一 端称为服务器端

通过请求和响应的交换达成通信 请求必定由客户端发出,而服务器端回复响应

请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段 和内容实体构成的

响应报文基本上由协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段以及实体主 体构成

HTTP 是不保存状态的协议

无状态协议 HTTP 协议自身不具备保存之前发送过的请求或响应的功能

Cookie 技术的出现是为了实现期望的保持状态功能

请求 URI 定位资源 HTTP 协议使用 URI 让客户端定位到资源

GET :获取资源 POST:传输实体主体 PUT:传输文件 HEAD:获得报文首部-和 GET 一样,但不返回报文主体 DELETE:删除文件 OPTIONS:询问支持的方法 TRACE:追踪路径

image.png

CONNECT:要求用隧道协议连接代理

image.png

持久连接节省通信量 HTTP 协议 每进行一次 HTTP 通信就要断开一次 TCP 连接

持久连接 只要任意一端没有明确提出断开连接,则保持 TCP 连接状态

管线化 是用于持久连接多数请求,它的出现,不用等待响应就可以直接发送下一个请求

管线化技术则比持久连接还要快

Cookie 的状态管理 不保存状态的情况下,可以减少服务器的cpu和内存资源的消耗

Cookie 技术通过在请求和响应报文中写入 Cookie 信 息来控制客户端的状态

没有Cookie 信息状态下的请求

image.png

有cookie之后的请求

image.png

image.png

编码提升传输速率

HTTP 报文的主体用于传输请求或响应的实体主体 通常,报文主体等于实体主体。 只有当传输过程中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异

压缩传输的内容编码

image.png

image.png

把实体主体分块的功能称为分块传输编码

image.png

发送多种数据的多部分对象集合

image.png

获取部分内容的范围请求 恢复是指能从之前下载中断处恢复下载

内容协商返回最合适的内容

image.png

image.png

返回结果的 HTTP 状态 码

HTTP 状态码 客户端 HTTP 请求的返回结果、标记服务器端 的处理是否正常、通知出现的错误等工作

image.png

image.png

204 No Content

image.png

206 Partial Content

image.png

400 Bad Request

image.png

Web 服 务器 HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点

通信数据转发程序 :代理、网关、隧 道

image.png

image.png

image.png

image.png

保存资源的缓存

缓存是指代理服务器或客户端本地磁盘内保存的资源副本

利用缓存 可减少对源服务器的访问 节省了通信流量和通信时间

缓存的有效期限 客户端的缓存

HTTP 首部 HTTP 报文首部 HTTP 请求报文 HTTP 报文由方法、URI、HTTP 版本、HTTP 首部字段等 部分构成

image.png

HTTP 报文由 HTTP 版本、状态码、 HTTP 首部字段 3 部分构成

image.png

HTTP 首部字段传递重要信息

image.png

Web 安全的 HTTPS

image.png

数据发布的格式及语言 可扩展标记语言 XML可扩展标记语言 是一种可按应 用目标进行扩展的通用标记语言 使互联网数 据共享变得更容易

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档