基础——计算机网络之HTTP

一.介绍一下Http

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

二.Http options请求

OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。
OPTIONS请求方法的主要用途有两个:
1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
2、用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。

三.http状态码列举

1xx消息——请求已被服务器接收,继续处理
100(继续) 101(切换协议)
2xx成功——请求已成功被服务器接收、理解、并接受
200(成功)201(已创建)
3xx重定向——需要后续操作才能完成这一请求
304(未修改)
4xx请求错误——请求含有词法错误或者无法被执行
404(未找到) 408(请求超时)
5xx服务器错误——服务器在处理某个正确请求时发生错误
500(服务器内部错误) 503(服务不可用)

四.HTTP为什么限制并发

防止一个网页引入了巨多的资源、全都同时开启下载导致系统资源被迅速耗尽

五.Http缓存控制

一.304状态和缓存相关
客户端有缓冲的文档并发出了一个条件性的请求。服务器告诉客户端,原来缓冲的文档还可以继续使用。
二.强缓存和协商缓存的缓存,是从哪里拿的?
强缓存是利用Expires或者Cache-Control这两个http response header实现的,它们都用来表示资源在客户端缓存的有效期。Expires是http1.0提出的一个表示资源过期时间的header,而Cache-Control则是http1.1提出的,如果同时存在则以Cache-Control为先。
当浏览器对某个资源的请求没有命中强缓存,就会发一个请求到服务器,验证协商缓存是否命中,如果协商缓存命中,请求响应返回的http状态为304并且会显示一个Not Modified的字符串,并且让浏览器就又从自己的缓存中去加载这个资源。
协商缓存是利用的是【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】这两对Header来管理的。
三.-control 的各个值*
cache-control: max-age=xxxx,public
客户端和代理服务器都可以缓存该资源;
客户端在xxx秒的有效期内,如果有请求该资源的需求的话就直接读取缓存,statu code:200 ,如果用户做了刷新操作,就向服务器发起http请求
1.cache-control: max-age=xxxx,private
只让客户端可以缓存该资源;代理服务器不缓存
客户端在xxx秒内直接读取缓存,statu code:200
2.cache-control: max-age=xxxx,immutable
客户端在xxx秒的有效期内,如果有请求该资源的需求的话就直接读取缓存,statu code:200 ,即使用户做了刷新操作,也不向服务器发起http请求
3.cache-control: no-cache
跳过设置强缓存,但是不妨碍设置协商缓存;一般如果你做了强缓存,只有在强缓存失效了才走协商缓存的,设置了no-cache就不会走强缓存了,每次请求都回询问服务端。
4.cache-control: no-store
不缓存,这个会让客户端、服务器都不缓存,也就没有所谓的强缓存、协商缓存了。

六.HTTP/2有哪些特性?

一.二进制分帧
在HTTP/2中,在应用层(HTTP2.0)和传输层(TCP或者UDP)之间加了一层:二进制分帧层。在二进制分帧层中, HTTP/2 会将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码。这种单连接多资源的方式,减少了服务端的压力,使得内存占用更少,连接吞吐量更大。而且,TCP连接数的减少使得网络拥塞状况得以改善,同时慢启动时间的减少,使拥塞和丢包恢复速度更快。
二.多路复用
多路复用允许同时通过单一的HTTP/2.0连接发起多重的请求-响应消息。在HTTP1.1协议中,浏览器客户端在同一时间,针对同一域名下的请求有一定数量的限制,超过了这个限制的请求就会被阻塞。而多路复用允许同时通过单一的 HTTP2.0 连接发起多重的“请求-响应”消息。HTTP2的请求的TCP的connection一旦建立,后续请求以stream的方式发送。每个stream的基本组成单位是frame(二进制帧)。客户端和服务器可以把 HTTP 消息分解为互不依赖的帧,然后乱序发送,最后再在另一端把它们重新组合起来。
三.header压缩
HTTP/1.1的header带有大量信息,而且每次都要重复发送。HTTP/2 为了减少这部分开销,采用了HPACK 头部压缩算法对Header进行压缩。
四.服务端推送
简单来讲就是当用户的浏览器和服务器在建立连接后,服务器主动将一些资源推送给浏览器并缓存起来的机制。有了缓存,当浏览器想要访问已缓存的资源的时候就可以直接从缓存中读取了。

七.http和https区别

1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前网易官网是http,而网易邮箱是 https 。)
2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

八.HTTPS的过程

1.客户端访问https连接
2.服务端发送证书(公钥)给客户端
3.客户端验证服务端的证书
4.服务端接收加密信息,解密得到客户端提供的随机字符串
5.客户端验证服务端返回的握手信息,完成握手

九.HTTPS连接之后传输数据怎么加密?

客户端是没有证书的,也就没有公钥和私钥。
SSL握手阶段,服务器把证书传输给客户端,同时也就传输了公钥(公钥是证书的一部分)。
由客户端来对这个证书进行有效性认可,再由这个客户端来生成对称密钥。
对称密钥用服务器证书中的公钥加密后,传回给服务器。只有服务器才能解密这个信息,也就只有服务器才知道你的对称密钥。
只要这个SSL连接没有关闭,后续的所有数据,无论是客户端发出的还是服务器发出的,均会使用这个对称密钥加密。
对称加密算法中,依赖的是密钥的保密性,只要密钥没有被泄露,对称加密的结果被截获也没有什么意义。而密钥是用公钥加密的,只能由服务器解开。

十.https 数据传输加密逻辑

1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.浏览器获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256

十一.对称加密和非对称加密区别

1、加密和解密过程不同
对称加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密过程用密文-密钥可以推导出原文。但非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。
2、加密解密速度不同
对称加密解密的速度比较快,适合数据比较长时的使用。非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。
十二.HTTP都有哪些方法
十三.HTTP组成部分,你能想起来哪些字段
十四. POST和PUT有什么区别?

猜你喜欢

转载自blog.csdn.net/qq_37282683/article/details/107771477