面试之计算机网络(篇四:HTTP与HTTPS)

目录

1. 简述HTTP协议

2. HTTP是如何处理无状态问题

3. Cookie与Session的区别

4. HTTP短连接与长连接的区别

5. HTTP1.0与HTTP1.1的区别

6. HTTP1.1与HTTP2.0的区别

7. HTTP状态码

8. HTTP与HTTPS的区别

9. HTTP请求常见方法

10. GET与POST的区别

11. 域名格式

12. DNS的解析过程

13. 打开一个网页数据的传输过程


1. 简述HTTP协议

(1)HTTP是超文本传输协议,主要用于万维网服务器传输超文本到本地浏览器。

(2)特点:

  • 基于 C/S 客户端-服务端模式,请求响应方法迅速;
  • 允许传输任意类型的数据;
  • 无连接,限制每次通信只处理一个请求;
  • 无状态,对事务处理没有记忆功能;

 

2. HTTP是如何处理无状态问题

(1)浏览器的Cookie;

(2)Session会话保存;

 

3. Cookie与Session的区别

(1)Cookie数据保存在客户端;Session数据保存在服务器。

(2)Cookie安全性较Session低。Cookie可以被分析进行Cookie欺骗,但是Session在一定时间内会保存在服务器中,增加了服务器的负担。

(3)Cookie可以设置过期时间或者永久保存;Session在网页关闭时就销毁。

(4)单个cookie保存的数据不能超过4k,且大部分浏览器限制一个站点只能有20个cookie;Session没有数量的限制,并且能够保存更加复杂的数据。

 

4. HTTP短连接与长连接的区别

HTTP是建立在TCP连接的基础上,短连接与长连接的区别在于TCP连接的持久性。

  • 短连接中每次TCP连接只能处理一次请求,在进行一次新的请求时需要重新建立TCP连接,效率较低;
  • 长连接中TCP连接具有持久性,每次TCP连接都能长时间处理多个请求而不释放,当在一定时间内(保活计时器)没有请求才会释放连接,效率较高;

 

5. HTTP1.0与HTTP1.1的区别

(1)HTTP1.0只支持短连接,HTTP1.1支持长连接(默认)。HTTP是建立在TCP上的,TCP的连接建立需要进行三次握手,释放需要进行四次挥手,重复建立释放会花费很多时间。

(2)HTTP1.1引入了Cookie技术,用于记忆事务保存状态。

(3)HTTP1.1较1.0节省带宽。HTTP1.0发送整个信息;HTTP1.1只发送请求时只发送header,由服务器判别是否有权限访问后再发送body信息。

(4)HTTP1.1有Host域,可以使用web server建立虚拟站点,共享同一个ip和端口。

 

6. HTTP1.1与HTTP2.0的区别

(1)多路复用。多个请求共享同一个TCP连接,HTTP1.1同一时刻只能处理同一请求,而HTTP2.0同一时刻可以并发处理多个请求。HTTP1.1中客户端在同一段时间内对同一域名的请求次数有限制,超过这个限制会出现阻塞现象。HTTP2.0支持多重的请求响应消息,请求数量限制比1.1高几个数量级。

(2)首部压缩。HTTP2.0通过HPack压缩header后再进行传输,提高了数据的传输速率。

(3)引入二进制分帧层。HTTP1.1的解析是基于文本的,效率低,健壮性差;HTTP2.0将传输的信息分割为消息和帧,并采取二进制编码,效率更高。

(4)服务器推送。客户端的一个请求会收到服务器的多个响应,这些响应会加入到客户端的缓存中,当客户端有相应请求时,可以直接从缓存中获取,而无需向服务器发送请求。

(5)引入了请求优先级及流量控制。

 

7. HTTP状态码

(1)分类:

  • 1xx:信息。服务器收到请求,需要请求者继续执行操作;
  • 2xx:成功。操作被成功接收并处理;
  • 3xx:重定向。需要进一步操作完成请求;
  • 4xx:客户端错误。请求的语法错误或者无法完成请求;
  • 5xx:服务端错误。服务器处理请求中出现错误;

(2)常见状态码:

  • 200:请求成功;
  • 301:资源已被永久转移成URL;
  • 404:请求资源不存在;
  • 500:内部服务器错误;

 

8. HTTP与HTTPS的区别

(1)URL不同。HTTP的url开头为http://;HTTPS的url开头是https://。

(2)HTTP是明文传输,容易被攻击和窃取,安全性低;HTTPS是基于TLS/SSL进行加密,安全性高。

(3)HTTPS有CA证书;HTTP没有。

(4)HTTP默认端口为80;HTTPS默认端口为443.

(HTTPS为HyperText Transport Protocol Secure,较HTTP最大的区别是安全性,通过密钥交换算法、签名算法、对称加密算法以及摘要算法进行加密)

 

9. HTTP请求常见方法

 

10. GET与POST的区别

(1)GET是直接添加在URL之后的,容易被攻击窃取;POST是添加在请求体中,对用户而言是不可见的,因此比较安全。

(2)GET请求有长度限制,一般不大于32K;POST没有长度限制。

(3)GET反复回退/前进是无害的;POST会再次请求。

(4)GET请求会被缓存;POST默认不会被缓存,除非手动设置。

(5)GET请求值产生一个TCP连接包,将header和data 一起发送给服务器,返回状态码200;POST产生两个TCP连接包,先将header发送给服务器,返回状态码100,再发送data,返回状态码200。

 

11. 域名格式

这里示例为百度:www.baidu.com

  • 根域名(root domain / RD):一般为.,但是一般URL会省略,即www.baidu.com.。
  • 顶级域名(top-level domain / TLD):.com,还有.cn、.net等。
  • 二级域名(second-level domain / SLD):.baidu。
  • 主机名(host):www

 

12. DNS的解析过程

(1)从浏览器缓存中查找是否有被解析过该域名对应的IP地址,有则直接返回该IP地址,没有则进行下一步;

(2)从本机的C盘hosts中查找是否有该域名的IP地址映射,若没有则进行下一步;

(3)根据TCP/IP设置的参数查询本地DNS服务器,进行区域解析是否有映射,若没有则进行下一步;

(4)根据本地DNS服务器(LDNS)是否设置转发模式分两种情况:

  • 若设置了转发模式,则将请求转发给上一级DNS服务器,一级一级向上转发,直到该域名可以解析;
  • 若没有设置转发模式,则将请求直接发送给13组根DNS服务器,然后根域名服务器将顶级域名服务器的地址返回给本地域名服务器,本地域名服务器重新发送请求给顶级域名服务器进行解析,一级一级向下重发请求直到解析成功;

(5)本地DNS服务器获取到IP地址后,添加到缓存中,并回传给浏览器;

(6)浏览器接收到IP地址后,根据TTL将域名与IP地址的映射添加到本地缓存中;

 

13. 打开一个网页数据的传输过程

  • 根据URL进行DNS域名解析
  • 根据解析得到的IP地址建立TCP连接;
  • 向目的IP地址发送HTTP请求;
  • 服务器处理请求;
  • 服务器返回响应结果;
  • 关闭TCP连接;
  • 浏览器解析HTML;
  • 浏览器布局渲染;

 

以上内容均是个人理解总结,若有错误欢迎指出!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值