GET和POST请求的区别
GET请求常用于请求向服务器获取数据,POST请求常用作向服务器推送数据。GET请求获取服务器数据不会进行修改,而POST请求会对服务器进行修改。GET请求的数据一般都存在请求头中而请求体为空,同时,GET请求可以将数据嵌入到url中,这对于POST请求来说是不安全的。GET请求URL数据有长度限制。POST请求可以携带更多类型的数据。
常见的HTTP请求方法
GET、POST、PUT、DELETE、OPTIONS
HTTP1.0和HTTP1.1之间有哪些区别
HTTP1.1新增了更多请求方法PUT、OPTIONS等等
HTTP1.1默认为持久连接
HTTP1.1支持断点续传、请求部分对象
HTTP1.1支持更多缓存策略
添加了host字段,因为现在每个IP地址可能有多个主机,因为有虚拟主机。
HTTP1.1和HTTP2.0的区别
二进制协议:HTTP1.1请求头为文本信息,而HTTP2.0为二进制信息,称为帧。
多路复用:HTTP2.0支持多路复用,可以同时发出多个请求,服务端也可以同时处理多个请求。解决了队列阻塞的问题
数据流:HTTP2.0在进行数据传输时是通过数据包进行传输,它会在每个包上作标记,接受端接受到后自行进行拼接。
头信息压缩:HTTP2.0对头信息进行了压缩,服务端和客户端都存有一个头信息表,传输时只需要传输序号。
服务器推送:HTTP2.0支持服务器推送给客户端,推送的是静态资源,是客户端必要的资源。
HTTP和HTTPS协议的区别
1、HTTPS对传输的信息进行了加密、完整性检查
2、HTTPS需要CA证书
3、HTTPS占用443端口,HTTP占用80端口
当浏览器输入地址后经过了那些步骤
HTTP请求报文是什么样的
请求行、请求头、请求体
请求行主要包括请求方法、URL、请求协议和版本
请求头为键值对主要包括
user-agent:请求浏览器类型
accept:请求传输的数据类型
HOST:请求主机的HOST
请求体:请求包含的数据
HTTP响应报文是什么样的
响应行、响应头、响应体
响应行:协议版本 状态码 状态描述
响应头:时间 响应数据类型
响应体:相应的数据
什么是HTTPS协议
HTTPS协议是在HTTP协议的基础上进行安全性的改进后的协议。
1.HTTPS会对传输的数据进行SSL/TLS加密,对称加密和非对称加密。客户端首先会使用公钥对对称加密密钥进行加密,传输给用户后用户通过公钥进行解密,得到对称加密的密钥。然后双方交流数据都通过对称加密密钥进行加密。
2.需要中间人,CA证书进行保证
3.HTTPS需要四次握手
TLS/SSL的工作原理
TLS/SSL包含散列hash加密(MD5、SHA256)、对称加密(AES)、非对称加密(RSA)
散列hash加密主要用于检测数据是否被篡改
对称加密主要用于数据加密
非对称加密主要用于身份验证和密钥协商
HTTPS是如何保证安全的
常见状态码
DNS协议是什么
DNS完整的查询过程
OSI七层模型
物理层:物理介质传输,传输为比特流
数据链路层:链路管理,传输的为数据帧
网络层:端到端连接,传输为数据报
传输层:进程到进程,传输为TCP/UDP报文
会话层:维持会话
表示层:用于数据加密解密
应用层:为应用提供服务接口
TCP/IP五层协议
物理层
数据链路层
网络层
传输层
应用层
TCP和UDP的概念和特点
TCP和UDP的区别
TCP和UDP的使用场景
TCP的三次握手和四次挥手
TCP三次握手
客户端发出连接请求,SYN=1,seq=x。
服务端接收后返回表示同意连接,SYN=1,seq=y,ACK = 1,ack = x+1
客户端收到后建立连接,返回表示收到,seq = x+1, ack=y+1
三次挥手完成
TCP四次挥手
客户端首先向服务端发送关闭请求FIN = 1,seq = x
服务端收到关闭请求,同意关闭,返回ACK = 1,ack = x+1,seq = y
客户端收到后,关闭客户端向服务端的连接,无法发送数据
服务端将剩下的数据传送给客户端
服务端发送关闭请求FIN = 1,seq = z,ACK = 1,ack = x+1
客户端收到请求,返回同意ACK = 1,seq = x+1,ack = z+1