数据结构与算法 概述

1976年,一个瑞士计算机科学家写一本书《Algorithms + Data Structures = Programs》。即:算法 + 数据结构 = 程序。40多年过去了,这个等式依然成立。

什么是数据结构?

数据结构(data structure)是计算机存储、组织数据的方式。对于特定的数据结构(比如数组),有些操作效率很高(读某个数组元素),有些操作的效率很低(删除某个数组元素)。程序员的目标是为当前的问题选择最优的数据结构。

具有以下设计目标。

阅读更多

计算机网络 HTTPS 中的 CA 证书与 SSL 证书

什么是CA证书?

CA的全称是Certificate Authority,中文名为”数字证书认证机构”。它是一个负责发放和管理数字证书的权威的第三方机构,有点像给人颁发身份证的户籍办公室。任何网站如果想要启用HTTPS协议,就必须先向CA机构申请一个SSL证书。

CA机构在给网站颁发SSL证书之前,会先对网站的身份信息进行严格的审核,确认其真实可靠。一旦网站的SSL证书获得CA的数字签名,浏览器端就能通过这个CA的根证书,来验证该SSL证书是否是经过CA机构授权的。

什么是SSL证书?

SSL的全称是Secure Sockets Layer,即安全套接字层,它是一种保护计算机网络通信安全的标准加密协议。SSL证书本质上就是一个由CA机构签发的身份证明,里面包含了网站的身份信息、加密公钥等内容。

阅读更多

计算机网络 HTTPS 工作原理

01.HTTPS工作原理

  • HTTPS工作原理
    • 一、首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;
    • 二、客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA加密);
    • 三、消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;
    • 四、发送给服务端,此时只有服务端(RSA私钥)能解密。
阅读更多

计算机网络 HTTP 的 Keep-Alive

01.什么是Keep-Alive模式

  • 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
  • http 1.0中默认是关闭的,需要在http头加入”Connection: Keep-Alive”,才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入”Connection: close “,才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。
阅读更多

计算机网络 HTTP 的长连接和短连接

简介

HTTP长连接和短连接是两种不同的连接方式,它们在连接的建立和维护方式上存在差异,进而影响HTTP通信的性能和资源消耗。

长连接

长连接是指在客户端和服务器之间建立一个持续的连接,在连接存活期间,客户端可以发送多个请求,而服务器可以发送多个响应。

优点

阅读更多

计算机网络 HTTP 管线化

01.最初通信方式

  • HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP连接。
    • 以当年的通信情况来说,因为都是些容量很小的文本传输,所以即使这样也没有多大问题。可随着 HTTP 的普及,文档中包含大量图片的情况多了起来。
    • 客户端与服务器端要进行通信,TCP协议为了保证通信的准确性,会进行“三次握手”来保证信息传递的准确性,确认完之后才会进行HTTP请求和响应的传输,传输完之后服务器端发出终止信号FIN,断开TCP连接。针对复杂的页面,这样太频繁会造成资源的开销。
阅读更多

计算机网络 HTTP 状态码

1.关于http状态码介绍

  • 如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通过浏览器访问您的网页或在检测工具抓取该网页时),那么,您的服务器会返回 HTTP 状态代码以响应该请求。
  • 一些常见的状态代码为:
    • 200 - 服务器成功返回网页
    • 404 - 请求的网页不存在
    • 503 - 服务器暂时不可用

2.关于1xx【临时响应】

阅读更多