赞
踩
1. http协议与TCP联系
Http连接是一种短连接,是一种无状态的连接。所谓的无状态,是指浏览器每次向服务器发起请求的时候,不是通过一个连接,而是每次都建立一个新的连接。
2. http/1.0和http/1.1的区别
3. http的请求方法有哪些?get和post的区别
(1)8中请求方法(前四种常用)
方法 | 操作 |
---|---|
GET | 请求读取由URL所标志的信息 |
POST | 给服务器添加信息(如,注释) |
PUT | 在指明的URL下存储一个文档 |
DELETE | 删除指明的URL所标志的资源 |
OPTION | 请求一些选项的信息 |
HEAD | 请求读取由URL所标志的信息的首部 |
TRACE | 用来进行环回测试的请求报文 |
CONNET | 用于代理服务器 |
(2)get和post的区别(重点)
4. http的状态码
状态码 | 类别 | 原因短语 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
5. http和https的区别,HTTPS的优缺点
(1)主要区别
(2)HTTPS的优点
(3)HTTPS的缺点
(4)HTTP的缺点
6. https的具体实现,怎么确保安全性
HTTPS 同 HTTP 一样,首先建立起 TCP 连接,但是建立好之后并不是立即发出请求,索要具体的资源,而是先和对方商量加密的密码。商量的加密密码的过程就是建立 TSL 连接的过程。其实并没有建立真实的连接,只是在刚刚建立好的 TCP 连接上,包裹上一层加密协议而已。但是也被形象的称作连接建立。具体建立方式如下:客服端发给服务器一个HELLO包,里面有我支持的加密协议列表。服务器收到后发送也给客户端发送一个HELLO数据包,数据包内包涵服务器挑选的加密算法,还包含自己的数字证书信息。你拿到他的数字证书信息之后就需要去向 CA 校验证书,校验成功后也知道了对方的公钥,就该通知服务器,我们以后对称加密的密码是多少,当然,这个密码是要用公钥加密的。服务器接收到之后,会根据对称密钥生成一系列复杂的加密算法,在传输给客服端,客户端收到后会给服务器发送一个 Finished Message ,服务器收到消息后也回一个 Finished Message。这时,我们终于完成了加密的准备工作,一切加密方式和密钥都商量好了,终于可以传输数据了。至此,TSL 建立连接的过程结束。
7. http中浏览器一个URL的流程,这个过程中浏览器做了什么?
(1) 域名解析成IP地址;
DNS服务器是基于UDP的,因此会用到UDP协议。
(2) 与目的主机进行TCP连接(三次握手);
(3) 浏览器向服务器发送HTTP请求,请求数据包
与服务器建立了连接后,就可以向服务器发起请求了。发送HTTP请求的过程就是构建HTTP的get请求报文,并通过TCP协议发送到服务器指定端口(HTTP协议80,HTTPS协议443)。HTTP请求是由三部分组成:请求行、请求报头和请求正文。
http生成一个get请求报文,将该报文传给TCP层处理。如果采用https还会先对http数据进行加密。TCP层如果有需要先将HTTP数据包分片,分片依据路径MTU和MSS。TCP的数据包然后会发送给IP层,用到IP协议。IP层通过路由选路,一跳一跳发送到目的地址。当然在一个网段内的寻址是通过以太网协议实现,以太网协议需要直到目的IP地址的物理地址,有需要ARP协议。
(4) 服务器处理收到的请求
服务器端收到请求后,由web服务器(准确来说应该是HTTP服务器)处理请求。web服务器解析用户请求,知道了要调度哪些资源文件,再通过相应的这些文件处理用户请求和参数,并调用数据库信息 ,最后将结果通过web服务器返回浏览器客户端。
(5) 返回相应结果至浏览器
HTTP响应报文也是由三部分组成:状态码、响应报头和响应报文。
(6) 与目的主机断开TCP连接(四次挥手);
(7) 浏览器对页面进行渲染呈现给用户
8. http报文首部格式
(1)请求报文
分为:请求行,请求头,实体主体
(2)响应报文
分为:状态行、响应报头和响应报文
状态行有:http版本,状态码,解释状态码的简单描述
9. URL包括哪三个部分
<协议>://<主机>:<端口>/<路径>
10. 说一说HTTP协议
(1)HTTP协议
(2)HTTP协议的特点
(3)HTTP过程概述
HTTP协议定义web客户端如何从web服务器请求web页面,以及服务器如何把web页面传送给客户端。HTTP协议采用了请求/相应模型。客户端向服务器发送一个请求报文,请求报文包含请求方法,URL,协议版本,请求头和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、状态码,响应头部和相应数据
HTTP请求/响应的步骤如下:
11. 对称密码和非对称密码体系
(1)对称加密是最快速、最简单的一种加密方式,加密与解密用的是同样的密钥。
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:交易双方都使用同样钥匙,安全性得不到保证。
(2)非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥和私钥。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。
优点:安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
12. 数字证书的了解(高频)
CA给用户颁发一个数字证书,证书中包含用户的公钥(这个公钥可以是用户自己生成的提交给CA的也可以是CA生成发给用户的)及相关身份信息。
CA是Certificate Authority的缩写,也叫“证书授权中心”。数字证书是由权威的CA机构颁发的无法被伪造的证书,用于校验发送方实体身份的认证。解决如上问题,只需要发送方A找一家权威的CA机构申请颁发数字证书,证书内包含A的相关资料信息以及A的公钥,然后将正文A、数字证书以及A生成的数字签名发送给B,此时中间人M是无法篡改正文内容而转发给B的,因为M不可能拥有这家CA的私钥,无法随机制作数字证书。当然,如果M也申请了同一家CA的数字证书并替换发送修改后的正文、M的数字证书和M的数字签名,此时B接收到数据时,会校验数字证书M中的信息与当前通信方是否一致,发现数字证书中的个人信息为M并非A,说明证书存在替换风险,可以选择中断通信。
为什么CA制作的证书是无法被伪造的?其实CA制作的数字证书内还包含CA对证书的数字签名,接收方可以使用CA公开的公钥解密数字签名,并使用相同的摘要算法验证当前数字证书是否合法。制作证书需要使用对应CA机构的私钥,因此CA颁发的证书是无法被非法伪造的。
13. 服务器攻击(DDos攻击)
从互联网上的成百上千个网站集中攻击一个网站,称为分布式拒绝服务DDoS。
14. HTTP2.0 的特点
(1)HTTP/2采用二进制格式而非文本格式
(2)HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个HTTP连接就可以实现多个请求响应
(3)使用报头压缩,HTTP/2降低了开销
(4)HTTP/2让服务器可以将响应主动“推送”到客户端缓存中
15. HTTP 缓存机制
(1)浏览器缓存过程:
根据浏览器是否向服务器发起请求来分为强缓存和协商缓存。
共同点:都是从客户端缓存中读取资源;
区别:是强缓存不会发请求,协商缓存会发请求。
16. union怎么判断大端小端
#include<stdio.h> #include<stdlib.h> int main(int argc, char **argv) { union { short s; char c[sizeof(short)]; } un; un.s = 0x0102; if (sizeof(short) == 2) { if (un.c[0] == 1 && un.c[1] == 2) printf("大端法\n"); else if (un.c[0] == 2 && un.c[1] == 1) printf("小端法\n"); else printf("不能判断\n"); } else printf("sizeof(short) = %d\n", sizeof(short)); exit(0); }
17.长连接是服务端设置还是客户端设置?如何设置
服务器和客户端都设置为Connection为keep-alive。
18. cookie与session的区别与联系
Cookie是在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。
Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。
一般情况下,服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将用户的一些数据以Key和Value的形式暂时存放在这个 Session中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。