计算机网络知识点(二)

计算机网络知识点(二)

总结一下计算机网络知识点,仅供个人学习。



前言

上一篇总结了一下计算机网络的基础知识点,这篇再对计算机网络一些常见知识点进行记录归纳。



一、HTTP无状态如何保存用户信息?

1、HTTP协议无状态协议

上一篇中提到HTTP需要注意的三个地方其中一个就包括HTTP是无状态协议的。

HTTP协议是无状态协议无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

2、解决方案

(1)基于Session实现的会话保持:

请求之后,服务器分配一个会话标识(SessionId)给客户端,这个会话标识一般保存在客户端Cookie中,以后每次浏览器发送http请求都会带上Cookie中的SessionId到服务器,服务器拿到会话标识就可以把之前存储在服务器端的状态信息与会话联系起来,实现会话保持(如果遇到浏览器禁用Cookie的情况,则可以通过url重写的方式将会话标识放在url的参数里,也可实现会话保持。

(2)基于Cookie实现的会话保持

基于Cookie实现会话保持与上述基于Session实现会话保持的最主要区别是前者完全将会话状态信息存储在浏览器Cookie中,这样一来每次浏览器发送HTTP请求的时候都会带上状态信息,因此也就可以实现状态保持。

3、cookie和session

①cookie数据存放在客户的浏览器上,session数据放在服务器上。②cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。③单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie④cookie只能存储string对象,session存储任意⑤session消耗服务器资源,cookie不会⑥cookie可以设置过期时间。Session可以销毁对话。

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中。
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。


二、GET和POST的区别

GETPOST
请求数据附加在URL之后,以?分割URL和传输数据,多个参数用&连接请求的数据放置在HTTP请求包的包体中
请求数据会暴露在地址栏中(账号,密码)请求数据不会暴露(在请求包中)
特定的浏览器和服务器对URL的长度有限制POST请求理论上是不会受限制的
安全性较低(浏览器缓存,历史记录等)安全性比较高(参数不会被保留)
get在浏览器回退时是无害的post会再次请求
get产生一个TCP数据包post产生两个tcp包
get多用于获取post多用于发送

三、浏览器输入URL的过程

第一步:浏览器查找自己的DNS 缓存,如果有直接返回 。

第二步:操作系统查找自己的DNS缓存,如果有直接返回给浏览器。

第三步:操作系统查找自己的本地host文件,如果有返回给浏览器。

第四步:操作系统向本地域名服务器发起请求,查找本地DNS缓存,如果有,返回给操作系统,然后操作系统返回给浏览器。

第五步:操作系统由根域名服务器向顶级域名服务器发起请求得到权限域名服务器的IP,(顶级域名服务器再向权限域名服务器发起请求得到IP,本地域名服务器返回给操作系统IP),同时将IP缓存起来,操作系统将IP返回给浏览器,同时将IP缓存起来。

第六步:根据IP建立TCP连接(三次握手),连接建立成功发起http请求,服务器给出响应,将指定文件发送给浏览器,浏览器解析HTML代码并请求html中的静态资源(js,css),关闭TCP连接(四次挥手)。

第七步:浏览器渲染页面。


四、HTTP与HTTPS

HTTPS

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。

SSL

SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

1、为什么要用HTTPS?

一般http中存在如下问题:

(1)请求信息明文传输,容易被窃听截取。
(2)数据的完整性未校验,容易被篡改
(3)没有验证对方身份,存在冒充危险

为了解决上述HTTP存在的问题,就用到了HTTPS。

2、HTTPS的工作原理

在这里插入图片描述
(1)首先客户端通过URL访问服务器建立SSL连接。
(2)服务端收到客户端请求后,会将网站支持的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)服务器利用自己的私钥解密出会话密钥。
(6)服务器利用会话密钥加密与客户端之间的通信。

3、HTTPS缺点

(1)HTTPS协议多次握手,导致页面的加载时间延长近50%;

(2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;

(3)申请SSL证书需要钱,功能越强大的证书费用越高。

(4)SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。

4、HTTPS和HTTP的区别

HTTPS和HTTP的区别主要如下:

1、https协议需要申请SSL证书。

2、http的协议传输信息是明文,不安全。https则是具有安全性的ssl加密传输协议。

3、http和https连接方式不同,端口也不一样,http是80,https是443。

4、http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。


总结

本文主要记录了HTTP相关的知识点,还有面试时遇到过的几个高频问题,当然还有很多其他重点东西没有总结到,比如三次握手、四次挥手这些原理过程等,先留到下一篇吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值