《图解http》读书笔记

第 1 章 了解 Web 及网络基础

一、Web 基于 HTTP协议 通信

Web 使用一种名为 HTTP(HyperText Transfer Protocol,即超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程,提供网页服务。协议即是规则!可以说,Web 是建立在 HTTP 协议上通信的。

在这里插入图片描述

二、网络基础:TCP/IP协议族

注:具体内容参考我之前写的TCP/IP协议族的学习笔记,在这篇博客上我就简短记录下了。
通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作的。而 HTTP 属于它内部的一个子集。
HTTP 关系密切的协议 : IP、TCP 和 DNS

(一)负责传输的 IP 协议

IP 协议的作用是把各种数据包传送给对方。而要传送到对方那里,则需要满足各类条件。其中两个重要的条件是 IP 地址MAC 地址(Media Access Control Address)。 IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。IP 地址可变换,但 MAC 地址基本上不会更改。IP 地址可以通过ARP 协议(Address Resolution Protocol)和 MAC 地址进行配对。

在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是需要经过网络设备中转才能连接到对方。而在进行中转时会采用 ARP 协议。ARP 是一种用以解析地址的协议,根据通信方 的 IP 地址就可以反查出对应的 MAC 地址,从而找到对方。
数据在网络中的传输可以类比现实生活中的快递运输。

(二)确保传输可靠和方便的 TCP 协议

TCP为了传输方便,把大块的数据切割成以报文段(segment)为单位的数据包进行管理。而TCP 的可靠之处在于它会通过三次握手(three-way handshaking)策略确保数据被送到了接收方。

(三)负责域名解析的 DNS 服务

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

三、URI 和 URL

URI (Uniform Resource Identifier,统一资源标识符 )

  • Uniform:
    规定统一的格式。可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。另外,加入新增的协议方案(如 HTTP)也更容易。
  • Resource
    资源的定义是可标识的任何东西。
  • Identifier
    表示可标识的对象。也称为标识符。

综上所述,URI 就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。采用 HTTP 协议时,协议方案就是 HTTP。

URI 用字符串标识某一互联网资源,而 URL(Uniform Resource Locator,统一资源定位符)用字符串标识资源的地点(在互联网上所处的位置)。可见 URL 是 URI 的子集。

(一)URI 格式

在这里插入图片描述
(连接数据库的时候就用到了URI格式的一部分…)

第 2 章 简单的 HTTP 协议

请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。

一、请求报文

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

在这里插入图片描述

请求报文的构成

二、响应报文

接收到请求的服务器,会将请求内容的处理结果以响应的形式返回。
响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。

在这里插入图片描述

响应报文的构成

三、HTTP 是无状态协议

HTTP 是一种不保存状态,即无状态(stateless)协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。

四、告知服务器意图的 HTTP 方法

注:这里只列出目前我web开发学习中遇到的请求方法

  • GET :获取资源
    GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器端解析后返回响应内容。在这里插入图片描述
  • POST:用来传输实体的主体
    在这里插入图片描述

五、HTTP 协议的 持久连接 特性

HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接。如果每次发送 HTTP 请求都要建立 TCP 连接的话,会造成资源的过多浪费。所以持久连接特性应运而生!
持久连接旨在服务端和客户端只建立 1 次 TCP 连接后进行多次请求和响应的交互。
持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。在这里插入图片描述

六、HTTP 协议的 管线化 特性

持久连接使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。
这样就能够做到同时并行发送多个请求,而不需要一个接一个地等待响应了。

七、HTTP 协议使用 Cookie 的状态管理

Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的 首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出 去。
服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一 个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前 的状态信息。
在这里插入图片描述
在这里插入图片描述

未完待续…

目前我只读了讲述HTTP协议概念的一二章,深入原理的后面几章等之后再认真读(啊!又挖坑了…)to be continued…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值