读书笔记---<<图解HTTP>>(一)
一、了解Web及网络基础
1. 网络基础TCP/IP
通常使用的网络包括互联网都是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集。
1.1 TCP/IP协议族
像这样吧与互联网关联的协议集合起来的总称为TCP/IP,这只是一种说法,还有其他的几种说法,比如TCP/IP指TCP和IP协议等等,这里就不深究了。
1.2 TCP/IP分层管理
记得大学的时候学的是OSI七层模型,在这本书上讲的是TCP/IP四层模型:应用层、传输层、网络层和数据链路层。
应用层
应用层决定了向用户提供应用服务时通信的活动。
FTP和DNS服务就是其中的两类,HTTP也属于该层。
传输层
传输层对上层应用层,提供网络连接中两台计算机之间的数据传输。
传输层有两个性质不同的协议:TCP和UDP
网络层
网络层用来处理网络上流动的数据包,数据包是网络传输的最小数据单位,该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传递给对方。
链路层
用来处理连接网络的硬件部分。
1.3 TCP/IP通信传输流
发送端从应用层往下走,接收端则往应用层往上走。
流程:发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的请求。
为了传输方便,传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在每个报文上打上标记序号及端口号后转发给网络层。
网络层(IP协议)增加作为通信目的地的MAC地址后转发给链路层。
接收端的服务器在链路层接受到数据,按序往上层发送,一直到应用层。
2. 与HTTP关系密切的协议:IP,TCP和DNS
2.1 负责传输的IP协议
IP协议的作用是把各种数据包传送给对方。为保证正确送达,其中两个正确的条件就是IP地址和MAC地址。
IP地址指明了节点被分配的地址,MAC是网卡的固定地址。IP地址会和MAC地址进行配对。
IP间通信依赖MAC地址。毕竟通信双方在同一局域网内的情况很少,通常需要多台计算机和网络设备转换才能连接到对方,而进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标,此时采用ARP协议。ARP协议是一种用解析地址的协议,通过IP地址反查出对应的MAC地址。
有点像送快递,寄快递---集散中心---中转站---集散中心---收快递
2.2 确保可靠性的 TCP 协议
TCP提供可靠的字节流服务,字节流服务是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。
可靠性--->三次握手
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后, 回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。
2.3 负责域名解析的 DNS 服务
为了方便用户记忆,DNS协议提供通过域名查找IP或逆向查找。
3 URI和URL
URI 统一资源标识符
URL 统一资源定位符
URN 统一资源名称
URL是URI的一种实现,是URI的一个子集。举个例子,假如大家名字都不能重复的话,根据名字就能标识出唯一的一个人,那么名字就是URI的一个实例,但是现实生活中名字肯定会重复,所以身份证号才是URI,通过身份证号就能标识出唯一的一个人。而URL是通过描述人位置的的方式来确定一个人,比如某某协议://地球/中国/上海/浦东新区/xx小区/xxx,另一种方式就是通过身份证号来确定这个人了,两种方式都属于URI。
二、简单的HTTP协议
1. HTTP协议用于客户端和服务端之间的通信
客户端包括请求行、请求头、请求体。
服务端包括想响应行、响应头、响应体。
其中,①②③是请求行,分别是请求方法,资源名称,HTTP版本号,④是请求头,⑤是请求体。
2. HTTP是不保存状态的协议
协议本身不保留任何请求和发送的信息,这是为了处理大量事务,确保协议的可伸缩性,而特意把HTTP设计的如此简单。
但是为了实现保持状态的功能,便引入了Cookie机制。
3. 告知服务器意图的HTTP方法
GET:获取资源
POST:传输实体主体
PUT:传输文件,像FTP协议的文件上传一样
HEAD:获得报文首部,和GET方法一样,只是不返回报文主体部分。用于确认URI的有效性及资源更新日期等。
DELETE:删除文件,与PUT相反的方法。
OPTIONS:询问支持的方法,查询针对URI指定的资源支持的方法。
TRACE:追踪路径,让Web服务端将之前的请求通信环回给客户端的方法。容易引发XST攻击,通常不会用到。
CPMMECT:要求用隧道协议连接代理。要求与代理服务器使用隧道协议进行TCP通信,通常使用SSL和TLS协议把通信内容加密后经过网络隧道传输。
目前大部分用的HTTP协议都是1.1版本。
4. 持久连接节省通信量
HTTP协议初始版本中,每进行一次HTTP通信就要断开一次TCP连接。
随着HTTP普及,文档中包含大量图片的情况多了起来,通信量大幅度增加。
4.1 持久连接
在HTTP/1.1中,所有的默认连接都是持久连接。
Keep-Alive: timeout=20 表示时间为20s的持久连接。
4.2 管线化
从前发送请求后需要等待并收到响应才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。
4.3 使用Cookie的状态管理
Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的 首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器 发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出 去。
服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一 个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前 的状态信息。
IP(Internet Protocol)
FTP(File Transfer Protocol,文件传输协议)
DNS(Domain Name System,域名系统)
TCP(Transmission Control Protocol,传输控制协议)
UDP(User Data Protocol,用户数据报协议)
MAC 地址(Media Access Control Address)
字节流服务(Byte Stream Service)
SSL(Secure Sockets Layer,安全套接层)
TLS(Transport Layer Security,传输层安全)
SYN(synchronize)
ACK(acknowledgement)
URL(Uniform Resource Locator)
URN ( Universal Resource Name)
读书笔记---<<图解HTTP>>(一)的更多相关文章
- 《html5 从入门到精通》读书笔记(一)
今天看了<html5 从入门到精通>这本书,感觉阅读下来很舒心,不像阅读其他书籍很揪心.html增加的知识点,我觉得非常有价值,看完几章记录了一些内容,不但能巩固,也为下次遗忘知识点做好准 ...
- HTML5从入门到精通(明日科技) 中文pdf扫描版
HTML5从入门到精通(明日科技) 中文pdf扫描版
- HTML5从入门到精通(千锋教育)免费电子版+PDF下载
本书是HTML5初学者极好的入门教材之一,内容通俗易懂.由浅入深.循序渐进.本书内容覆盖全面.讲解详细,其中包括标签语义化.标签使用规范.选择器类型.盒模型.标签分类.样式重置.CSS优化.Photo ...
- Unity Shader入门精要读书笔记(一)序章
本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...
- Oracle从入门到精通----学习笔记
书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- Unity Shader入门精要读书笔记(二)UnityShader概述
第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...
- 《html5 从入门到精通》读书笔记(二)
接着上面继续记录笔记,这次要记的知识点比较多...记录下我认为比较重要的东西. 一.表单属性 1.autocomplete属性 该属性规定form或input域应该拥有自动完成功能. <form ...
- 《html5 从入门到精通》读书笔记(三)
二.标签详解 标签 描述 4 5 <form> 定义表单. 4 5 <h1> to <h6> 定义标题1到标题6. 4 5 <head> 定义关于文档的 ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
随机推荐
- springboot+mybatis+dubbo+aop日志第一篇
本篇文章主要讲述项目搭建过程,不会涉及过多的基础知识,本项目是作者对前段时间学习的一个总结,主要使用到技术有:maven父子工程.springboot.mybatis.dubbo.zookeeper. ...
- Servlet+Tomcat总结
Tomcat的缺省端口是多少,怎么修改 1.找到Tomcat目录下的conf文件夹 2.进入conf文件夹里面找到server.xml文件 3.打开server.xml文件 4.在server.xml ...
- Redux,基础
在学习了React之后, 紧跟着而来的就是Redux了~ 在系统性的学习一个东西的时候, 了解其背景.设计以及解决了什么问题都是非常必要的. 接下来记录的是, 我个人在学习Redux时的一些杂七杂八~ ...
- 第35章 秘密(secrets) - Identity Server 4 中文文档(v1.0.0)
在某些情况下,客户端需要使用身份服务器进行身份验证,例如 在令牌端点请求令牌的机密应用程序(也称为客户端) API在内省端点验证引用令牌 为此,您可以将秘密列表分配给客户端或API资源. 秘密解析和验 ...
- 如何使用在三星840 SSD硬件加密下使用Bitlocker
我的笔记本存放到比较重要的资料,需要加密,想到我的三星EVO 850 SSD支持三种加密模式,于是想使用全盘加密模式.但是找了半天没找到一点合适的中文资料,于是怒而翻译一下加密全盘加密的Bitlock ...
- C#多线程编程的同步也线程安全
前一篇文章记录了简单的多线程编程的几种方式,但是在实际的项目中,也需要等待多线程执行完成之后再执行的方法,这个就叫做多线程的同步,或者,由于多个线程对同一对象的同时操作造成数据错乱,需要线程安全.这篇 ...
- 杭电ACM2007--平方和与立方和
平方和与立方和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- 使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目
步骤: 1. 创建一个asp.net mvc 项目 1.1 项目创建好结构如下 2 通过vs安装EntityFramework框架 install-package entityframework 3. ...
- js实现多个倒计时并行 js拼团倒计时
本文是对类似于拼团,多个商品每个都有各自的js倒计时,一开始接到接到这个需求也是头疼了一阵子,如果是在商品列表少的时候完全就可以写成死的,固定的变量,写几个定时器就ok了, 但是这次数据是活的,看一些 ...
- 编译内核时出现drivers/mfd/mxc-hdmi-core.c:36:24: fatal error: mach/clock.h: No such file or directory
在学习恩智浦IMX6D开发板时,编译内核出现 drivers/mfd/mxc-hdmi-core.c::: fatal error: mach/clock.h: No such file or dir ...