http协议之面试题

来源:互联网 发布:天龙八部mac 编辑:程序博客网 时间:2024/05/21 21:49
 Q1 : 什么是HTTP 、Socket、 TCP、 UDP?
HTTP :全称是超文本传输协议,是一个应用层的协议。用于客户端和服务端之间进行通讯。
TCP/UDP :都是传输层协议。TCP是可靠的,我们常说的三次握手连接,四次握手断开都说 的是TCP,
而UDP是不可靠的。
Socket :则是从传输层抽象出来的接口层。

Q2 : HTTP连接和Socket连接有什么区别?分别在什么情况下使用?
HTTP 是基于TCP的短连接。需要经过三次握手建立连接,且无法保持始终连接。
HTTP连接,服务端无法主动发消息,采用的是'请求-响应'机制。有请求,才有响应。
客户端没有发消息给服务端,服务端无法推送消息给客户端。

Socket 是长连接。基于TCP的Socket连接,一旦建立三次握手,除非一方主动断开,否则连接状态一直保存。也可以基于UDP进行Socket连接。Socket连接,一方可以随时向另一方发起会话。双方不需要时刻保持连接在线用HTTP。
eg : 客户端资源获取、上传文件等。即时通讯应用需要用Socket连接。eg : 微信、苹果的APNs等。

Q3 : HTTPS是什么?和HTTP有什么区别?
HTTPS就是HTTP加上SSL(TLS)。TLS(Transport Layer Security)传输层安全协议,作用是在传输层对网络连接加密。SSL就是TLS的前身。HTTP端口是80,是无状态的。HTTPS端口是443,是可以进行加密传输、身份认证的网络协议。

原创粉丝点击