1、HTTP协议和HTTPS协议有什么区别
解:
(1)https协议需要到ca申请证书,一般免费证书很少,需要交费
(2)http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议
(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
(4)http的连接很简单,是无状态的,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2、对称加密和非对称加密的区别
解:
(1)对称加密是最快速最简单的一种加密方式。加密密钥与解密密钥是相同的密码体制。对称加密的缺点是管理与分配问题,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题,在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。
(2)非对称加密为数据的加密和解密提供了一个非常安全的方法,它使用了一堆密钥,公钥和私钥。私钥只能由一方安全保管,不能外泄,而公钥则可以发送给任何请求它的人。非对称加密使用这对秘钥中的一个进行加密,而解密则需要另一个密钥。安全性大大提高。目前最常用的非对称加密算法是RSA。
3、HTTP协议中采取Get请求和POST请求的区别
解:Get-从指定服务器获取数据;Post- 提交数据给指定的服务器
(1)GET方法:
使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
/test/demo_form.jsp?name1=value1&name2=value2
特点:
GET请求能够被缓存
GET请求会保存在浏览器的浏览记录中
以GET请求的URL能够保存为浏览器书签
GET请求有长度限制(通常是浏览器的限制,http并无要求)
GET请求主要用以获取数据
get安全性非常低
(2)POST方法:
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器:
POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特点:
POST请求不能被缓存下来
POST请求不会保存在浏览器浏览记录中
以POST请求的URL无法保存为浏览器书签
POST请求没有长度限制
post安全性较高。
- get查询字符串被附加在URL地址后面,请求长度受到浏览器限制,记录会保存在浏览记录中,安全性非常低
- post放在请求体中单独保存,不能缓存,没有长度限制,安全性较高
4、当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?
解:
(1)分析链接指向页面的URL
(2)浏览器向DNS请求解析网址
首先查找浏览器缓存,系统缓存,如果还没有对应的IP,接着会发送一个请求到路由器上,在路由器缓存上查找记录。如果还是没有,这个请求就会被发送到ISP,ISP也会有相应的ISP DNS服务器。如果还是没有的话, 你的ISP的DNS服务器会将请求发向根域名服务器进行搜索,根域名服务器就是面向全球的顶级DNS服务器,共有13台逻辑上的服务器,这些服务器有真正完整的DNS数据库。如果到了这里还是找不到域名的对应信息,那只能说明一个问题:这个域名本来就不存在,它没有在网上正式注册过。或者卖域名的把它回收掉了。
这也就是为什么打开一个新页面会有点慢,因为本地没什么缓存,要这样递归地查询下去。
多说一句,例如”mp3.baidu.com”,域名先是解析出这是个.com的域名,然后跑到管理.com域名的服务器上进行进一步查询,然后是.baidu,最后是mp3
(3)浏览器解析出IP后,,建立TCP链接
(4)浏览器发出取文件命令,给这个IP的服务器发送一个http请求,方式为get
这个get请求包含了主机(host)、用户代理(User-Agent),就是自己的浏览器,它是你的”代理人”,Connection(连接属性)中的keep-alive表示浏览器告诉对方服务器在传输完现在请求的内容后不要断开连接,不断开的话下次继续连接速度就很快了。其他的顾名思义就行了。还有一个重点是Cookies,Cookies保存了用户的登陆信息,在每次向服务器发送请求的时候会重复发送给服务器。Chorome上的F12与Firefox上的firebug(快捷键shift+F5)均可查看这些信息。
(5)服务器收到浏览器的请求以后(其实是WEB服务器接收到了这个请求,WEB服务器有iis、apache等),它会解析这个请求(读请求头),然后生成一个响应头和具体响应内容。接着服务器会传回来一个响应和一个响应,响应头告诉了浏览器一些必要的信息,例如重要的Status Code,2开头如200表示一切正常,3开头表示重定向,4开头,如404,呵呵!5开头表示服务器差错;1表示通知信息的。
需要说明的是,对于静态的页面内容,浏览器通常会进行缓存,而对于动态的内容,浏览器通常不会进行缓存。缓存的内容通常也不会保存很久,因为难保网站不会被改动。
(6)释放TCP链接
(7)浏览器显示所有文本。
5、TCP 3次握手和4次握手
6、HTTP的长连接和短连接
解:
HTTP1.0不支持持续连接,HTTP1.1支持持续连接。所谓的长连接,就是指一段客户端和服务器建立连接之后,在一定时间范围内保持持续连接的状态,不需要每次传输数据时再次发送连接请求,大大减少了响应的时间,也增加了万维网服务器的开销。TCP的保活功能主要视为服务器提供的,服务器应用希望知道客户主机是否崩溃,从而可以代表客户使用资源。如果客户已经消失,使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,则服务器将永远等待客户端的数据,保活功能就是试图在服务器端检测到这种半开放的连接。如果一个给定的连接在两小时内没有任何的动作,则服务器就向客户发一个探测报文段。TCP保活功能主要为探测长连接的存活状况