Linux 复习五
问:什么是http协议?
答:http是应用层的一种超文本协议,属于tcp/ip 协议族,目前使用版本为http 1.1 是一种简单的请求处理通信,之前一般都是一次短连接,随着http的发展,如果一次请求需要打开HTML页面的其他业务,多次的TCP连接就会造成无谓的开销,也有了长连接,不会断开tcp连接,提高了效率,这样持久性的连接,是一种线管化的管理,一次请求无需立即响应,就可以发出其他请求,http本来是一种无状态的管理,后来引入cookie技术,可以实现请求状态的管理。
问:http和https的区别?
答:http协议有它自己的缺点:
- 通信使用明文,不安全
- 不验证通信方的身份,可能受到攻击
- 无法证明报文的完整性,可能已经被更改
而https协议是在TCP 和应用层之间增加了SSL协议,而SSL协议分为SSL记录协议为高层数据提供了压缩加密的机制和SSL握手协议在实际数据开始传输之前,对通信双方进行身份认证,协商密钥
因此http和https的区别为:
- https需要查看服务器证书,
- https是明文传输,而https是通过SSL加密传输
- http和https使用的端口不一样,前者是80 厚着是443
- http连接是一般是无状态的,而https进行了身份验证,比http更安全
问:什么是DNS协议?
答:DNS是域名解析协议,是一个应用层的协议,建立在UDP协议下,是一个分布式的数据库服务,端口号53,通过域名解析出IP
问:http的请求方法有哪些?
答:
- GET:获取资源
- POST:传输实体主体
- PUT:传输文件
- HEAD:获取头部信息
- DELETE:删除文件
- OPTIONS:询问支持的方法
- TRACE:追踪路径
- CONNECT:要求用隧道协议连接代理
- LINK:建立和资源之间的联系
- UNLINE:断开连接关系
问:http应答码?
2XX 表示OK 3XX :表示重定向 4XX 客户端错误 5XX 服务器错误
问:输入www.baidu.com经历了什么?
答:
- 查看浏览器缓存,是否有DNS信息
- 查看系统缓存,是否有该网站的DNS信息
- 查看路由缓存,是否有该网站信息
- 浏览器向DNS服务器发送请求,将域名转换成IP
- 浏览器和百度服务器3次握手,建立TCP连接
- GET方法发送http请求报文
- 服务器回复http请求报文
- 根据报文内容将HTML页面显示
- 发送报文结束,4次挥手断开
UDP编程:
UDP特点:无连接,不可靠的数据报服务。
编程流程:server:socket()---bind()---recvfrom()---sendto()----close()
client: socket()---sendto()---recvform()----close()
UDP 支持广播或者多波 不需要链接,所以速度快,可以设置超时,防止无效的等待
问:流式服务和数据报的区别?
答:TCP是面向字节流的,因此数据没有边界,按照字节读取,并且都会有应答确认,而UDP是面向数据报的,数据有边界格式,客户端发多少次,服务端接收多少次,如果出现接收不及时,则丢弃数据
问:如何让UDP变成安全可靠的服务?
答:我们需要在UDP协议上增加一些其他协议,保证数据的有效性,顺序性,和数据的完整性,如RUDP,增加了,拥塞控制和重发机制,RTP协议,UDT协议。

浙公网安备 33010602011771号