码迷,mamicode.com
首页 > Web开发 > 详细

《图解http》知识点笔记

时间:2018-01-02 21:27:04      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:html   author   http报文   全面   恢复   log   cache   http协议   range   

1.

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

 

2.

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

 

3.

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

 

4.

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

 

5.

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.

当301、302、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.

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

 

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独立的数据帧

 

《图解http》知识点笔记

标签:html   author   http报文   全面   恢复   log   cache   http协议   range   

原文地址:https://www.cnblogs.com/yonglin/p/8178709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!