《图解http》知识点笔记

1.html

http正式做为标准被公布是在1996年5月,版本被命名为http/1.0,并记载于RFC1945算法

 

2.浏览器

1997年公布的HTTP/1.1是目前主流的HTTP协议版本,当初的标准是RFC2068,以后发布的修订版RFC2616就是当前的最新版本缓存

 

3.服务器

TCP/IP协议族按层次分别分为如下4层:应用层,传输层,网络成,数据链路层网络

 

4.ide

发送端在层与层之间传输数据时,每通过一层时一定会被打上一个盖层所属的首部信息网站

 

5.google

IP网际协议位于网络层。编码

 

6.

ip间的通讯依赖mac地址

 

7.

ARP是一种用以解析地址的协议,根据通讯放的ip地址就能够反查出对应MAC地址

 

8.

不管哪台计算机,哪台网络设备,他们都没法全面掌握互联网中的细节

 

9.

TCP位于传输层,提供可靠地字节流服务,所谓的字节流服务是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。

 

10.

为了准确无误的将数据送达目标处,TCP协议采用了三次握手策略。发送端首先发送一个带SYN标志的数据包给对方,接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,表明“握手”结束。

 

11.

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

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

 

12.

RFC是互联网的设计文档,要是不按照RFC标准执行,就有可能致使没法通讯的情况。

 

13.

http报文大体可分为报文首部和报文主体两块,二者由最初出现的空行(CR+LF)来划分

 

14.

常见的内容编码有如下几种:

1.gzip(GNU zip)

2.compress(UNIX系统标准压缩)

3.deflate(zlib)

4.identity(不进行编码)

 

15.

在http通讯过程当中,请求的编码实体资源还没有被所有传输完成以前,浏览器没法显示请求页面。在传输大容量数据时,经过把数据分割城多块,可以让浏览器逐步显示画面,这种把实体主体分块的功能称为分块传输编码(chunked transfer Coding)

 

16.

在http报文中使用多部分对象集合时,须要在首部字段里加上content-type

 

17.

要实现能从以前下载中断处恢复下载须要指定下载的实体范围,像这样,指定范围发送的请求叫作范围请求。由Range这个请求头控制。例如 

Range: bytes=5001-10000 表示请求资源的5001-10000字节的范围。

 bytes=5001- 表示从5001到以后全部

bytes=-3000, 5000-7000 从一开始到3000和5000-7000字节的多重范围

 

 

18.

针对范围请求,响应会返回状态码206。另外,对于多重范围的范围请求,响应会在首部字段content-type标明multipart-byteranges后返回响应报文。若是服务器没法响应范围请求,则会返回状态码200 OK和完整的实体内容

 

19.

内容协商常见请求头:

1.Accept

2.Accept-Charset

3.Accept-Encoding

4.Accept-Language

5.Content-Langeuage

 

20.

Accept:text/xml; 

Content-Type:text/html 

即表明但愿接受的数据类型是xml格式,本次请求发送的数据的数据格式是html。

 

21.

1** 接受的请求正在处理

2** 请求正常处理完毕

3** 须要进行附加操做以完成请求

4** 服务器没法处理请求

5** 服务器处理请求出错

 

22.

只要遵照状态码类别的定义,即时改变RFC2616中定义的状态码或服务端自行建立状态码都没问题

 

23.

常见状态码:

200 OK 

204 No Content请求处理成功,但没有资源可返回

206 Partial Content表示客户端进行了范围请求,响应报文中包含由Content-Range指定范围的试题内容

301 Moved Permanently 永久重定向

302 Found 临时重定向

303 See Other 但愿客户端能以GET方法重定向到另外一个URI上

304 Not Modified 用缓存的时候会出现

400  Bad Request请求报文中存在语法错误

401 Unauthorized 发送的请求须要有经过HTTP认证(BASIC认证、DIGEST认证)

403 Forbidden 服务器拒绝提供,通常是权限的问题

404 Not Found

500 Internal Server Error 服务器端内部出错

503 Service Unavailable 服务器在更新或者忙,一会再来

 

24.

当30一、30二、303响应状态码返回时,几乎全部的浏览器都会把POST改成GET

 

25.

HTTP/1.1规范容许一台HTTP服务器搭建多个WEB站点,由于利用了虚拟主机功能,即时物理层面只有一台服务器,但只要使用虚拟主机的功能,则能够假想已具备多台服务器

 

26.

当请求发送到服务器时,已是以IP地址形式访问了

 

27.

代理,它扮演了位于服务器和客户端“中间人”的角色

网关,是转发其余服务器通讯数据的服务器,接受从客户端发送来的请求时,他就像拥有资源的源服务器同样对请求进行处理

隧道,是在相隔甚远的客户端和服务器二者之间进行中转,并保持双方通讯链接的应用程序

 

28.

使用代理服务器的理由有:利用缓存技术减小网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的。

 

29.

代理有多种使用方法,按两种基准分类,一种是是否使用缓存,另外一种是是否会修改报文。

 

30.

隧道使用SSL等加密手段进行通讯

 

31.

在请求中,HTTP报文由方法,URI,HTTP版本,HTTP首部字段等构成

在响应中,HTTP报文由HTTP版本,状态码(数字和缘由短语)、HTTP首部字段3部分构成

 

31.

从字面意思上很容易把no-cache误解为不缓存,但事实上no-cache表明不缓存过时的资源,缓存会像员服务器进行有效期确认后处理资源,no-store才是真正的不进行缓存

 

32.

no-cache: 告诉浏览器、缓存服务器,无论本地副本是否过时,使用资源副本前,必定要到源服务器进行副本有效性校验。也就是说必定会有http请求,服务器会告诉咱们资源有没有更新过。

must-revalidate:告诉浏览器、缓存服务器,本地副本过时前,可使用本地副本;本地副本一旦过时,必须去源服务器进行有效性校验。

 

33.

keep-alive: timeout=10, max=500

 

34.

Pragma是HTTP/1.1以前版本的历史遗留字段,仅做为与HTTP/1.0的向后兼容

 

35.

首部字段Transfer-Encoding规定了传输报文主体时采用的编码方式

 

36.

首部字段Upgrade用于检测HTTP协议及其余协议是否可以使用更高的版本进行通讯,其参数值能够用来指定一个彻底不一样的通讯协议

 

37.

报文通过代理或网关时,会如今首部字段Via中附加该服务器的信息,而后进行转发。

 

38.

Host首部字段在HTTP/1.1规范内是惟一一个必须被包含在请求内的首部字段

 

39.

If-match和ETag一块儿使用,还可使用星号(*)指定If-match的字段值,这样,服务器将会忽略ETag的值,只要资源存在就处理请求

 

40.

对主体进行内容编码传输时,不能再使用content-length首部字段

 

41.

http主要有这些不足:

1.通讯使用明文,内容可能会被窃听

2.不验证通讯方的身份,所以可能遭遇假装

3.没法证实报文完整性,因此有可能已遭篡改

 

42.

与SSL组合使用的HTTP被称为HTTPS

 

43.

虽然使用HTTP协议没法肯定通讯方,但若是使用SSL则能够,SSL不只提供加密处理,并且还使用了一种被称为证书的手段,可用于肯定方。

 

44.

常使用的肯定报文完整性的方法,MD5和SHA-1等散列值校验,但他们并不便捷和可靠

 

45.

SSL提供认证和加密处理及摘要功能

 

46.

HTTP+加密+认证+完整性保护=HTTPS

 

47.

HTTPS是身披SSL外壳的HTTP,HTTPS只是HTTP通讯接口部分用SSL和TLS协议代替而已

 

48.

一般HTTP直接和TCP通讯,当使用SSL时,则演变成先和SSL通讯,再由SSL和TCP通讯了,简而言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP

 

49.

SSL采用一种叫公开密钥加密的加密处理方式,近代的加密方法中加密算法是公开的,而密钥确是保密的

 

50.

加密和解密同用一个密钥的方式称为共享密钥加密,也被叫作对称密钥加密

 

51.

使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用本身的私有密钥进行解密。利用这种方式,不须要发送用来解密的私有密钥,也没必要担忧密钥被攻击者窃听而盗走。

 

52.

HTTPS采用共享密钥加密和公开密钥加密二者并用的混合加密机制

 

53.

为了解决公开密钥在传输中被替换的状况,可使用由数字证书认证机构(CA,certificate Authority)和其相关机关颁发的公开密钥证书

 

54.

公钥证书也可叫作数字证书或直接称为证书

 

55.

接到证书的客户端可以使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证经过,客户端即可明确两件事:1、认证服务器的公开密钥是真实有效的数字证书认证机构。2、服务器的公开密钥是值得信赖的。

 

56.

多数浏览器开发商发布版本时,会事先在内部植入经常使用认证机关的公开密钥

 

57.

银行的网上银行就采用了客户端证书,在登录网银时不只要求用户确认输入ID和密码,还要要求用户的客户端证书,以确认用户是否从特定的终端访问网银

 

58.

HTTPS也存在一些问题,那就是当使用SSL时,它的处理速度会变慢

 

59.

SSL的慢分两种。一种是指通讯慢。另外一种是指因为大量消耗CPU及内存等资源,致使处理速度变慢。

 

60.

要进行HTTPS通讯,证书是必不可少的

 

61.

HTTP/1.1使用的认证方式:

1.BASIC认证(基本认证)

2.DIGEST认证(摘要认证)

3.SSL客户端认证

4.FormBase(基于表单认证)

 

62.

当请求的资源须要BASIC认证时,服务器会随状态码401返回带WWW-Authenticate首部字段的响应

 

63.

google的spdy是做用在会话层,也就是SSL和HTTP中间

 

64.

为了实现WebSocket通讯,须要用到HTTP的Upgrade首部字段,告知服务器通讯协议发生改变,已达到握手的目的,服务器返回状态码101

 

65.

成功握手确立WebSocket连接以后,通讯时再也不使用HTTP的数据帧,而采用WebSocket独立的数据帧

相关文章
相关标签/搜索