【1】 HTTP的主要特点

(1) 简单快速:客户端向服务端发送请求时,只是简单的填写请求路径和请求方法即可,然后就可以通过浏览器或其他方式将请求发送就行了

(2) 灵活:HTTP协议允许客户端和服务器端传输任意类型,任意格式的数据对象

(3) 无连接:无连接的含义就是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种传输方式可以节省传输时间。

(4) 无状态:无状态是指协议对于事务处理没有记忆功能,服务器不知道客户端是什么状态,即客户端发送HTTP请求后,服务器根据请求,会给我们发送数据,发送完后不会记录信息(使用cookie机制可以保持session,解决无状态的问题)

(5) 支持客户/服务器模式

【2】 HTTP和HTTPS的区别

(1) HTTPS协议需要申请证书,一般免费的证书很少,需要交费

(2) HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性加密传输协议

(3) HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,HTTP的端口号是80,HTTPS的端口号的443

(4) HTTP的连接很简单,是无连接

(5) HTTPS协议是由ssl+HTTP协议构建的可进行加密的传输,身份认证网络的协议,要比HTTP协议安全的多

【3】 HTTP返回的状态码

(1)200:请求被正常处理

(2)204:请求被受理,但没有资源返回

(3)206:客户端只请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过content-range指定范围资源

(4)301:永久性重定向

(5)302:临时重定向

(6)303:与302状态码有相似的功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上

(7)304:发送附带条件的请求时,条件不满足时返回,与重定向无关

(8)307:临时重定向,与302类似,只是想只要求使用post方法

(9)400:请求报文语法有误,服务器无法识别

(10)401:请求需要认证

(11)403:请求对应资源禁止访问

(12)404:服务器无法找到对应资源

(13)500:服务器内部错误

(14)503:服务器正忙

【4】 HTTPS通信流程,为什么能保证通信安全

(1)“客户”向服务端发送一个通信请求

(2)“服务器”向客户发送自己的数字证书。证书中有一个公钥用来加密的,私钥由服务器持有

(3)“客户”收到“服务器”的证书后,它会去验证这个数字证书到底是不是“服务器”的,数字证书有没有什么问题,数字证书如果没有检查出问题,就说明数字证书中的公钥确实是“服务器”的。检察数字证书后,“客户”会发送一个随机的字符串给“服务器”用私钥去加密

(4)服务器把加密的结果返回给客户

(5)客户用公钥解密这个返回结果,如果解密之前生成的随机字符串一致,那说明对方确实是私钥的持有者,或者说对方确实是服务器。验证服务器的身份之后,客户生成一个对称机密算法和密钥,用于后面的通信加密和解密。这个对称加密算法和密钥,客户会用公钥加密后发给服务器,别人截获了也没有用,因为只有服务器手中有解密的私钥,这样,后面“服务器”和“客户”就都可以用对称加密算法来加密和解密通信内容了。

【5】 HTTP请求头

http数据由请求行,首部字段,空行,报文主体四个部分组成
首部字段分为:通用首部字段,请求首部字段,响应首部字段,实体首部字段

【6】 Cookies和session,session具体原理和机制

(1)session具体原理:本题看红色的总结

【7】 Get和post的区别

(1) get重点是从服务器上获取资源,post重点是向服务器发送数据

(2) get传输数据是通过URL请求,以field(字段)=value的形式,置于URL后,并用“?”连接,多少请求数据间用“&”连接,这个过程用户是可见的。Post传输数据通过HTTP的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的

(3) get传输的数据量小,因为受URL长度的限制,但效率高。Post可以传输大量数据,所以上传文件时只能用post方式

(4) get是不安全的,因为URL是可见的,可能会泄露信息,如密码等。Post比get的安全性高

【8】 HTTP1.1和HTTP2.0的特点

http1.1的特点

(1) 默认持久连接节省通信量,只要客户端服务端任意一端没有明确提出断 开TCP连接,就一直保持连接,可以发送多次HTTP请求

(2) 管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应

(3) 断点续传ftghh

http2.0的特点

(1)HTTP/2采用二进制格式而非文本格式
(2)HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个 HTTP连接就可以实现多个请求响应

(3)使用报头压缩,HTTP/2降低了开销
(4)HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

Last modification:April 29th, 2018 at 05:00 pm
正在沿街乞讨中……