小伙伴们出去面试,经常会被面试官问到关于 网络协议方面的问题。所以呢,今天我就给大家总结一下,网络协议中,经常被大家问到的一些问题(当然这只是一小部分,如果感兴趣的小伙伴比较多,后续还会持续更新更多关于网络协议当中的面试题)
1、请详细介绍一下http协议
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
http协议是应用层协议,端口号是:80
Http是无状态,是指处理事物没有记忆,下一次的请求与上一次的请求,服务器不知道是来自一个客户端的。
http是无连接,即每次只处理一个请求,处理完后就断开连接。
2、http与https的区别
- https是http的安全版本
- https:http+ssl,保证隐私的数据可以加密传输,并且进行认证,相对于http要安全。
- http是明文传输,https是加密传输
- http端口号是80,https端口号是443
- http不需要认证证书,https需要申请ca证书
- http的Url是以http:开头,而https的url是以https:开头
3、http请求方式一般有哪几种?
(1) Options:允许查看服务器性能
(2) Get:向服务器请求资源
(3) Post:向服务器提交数据表单
(4) Put:向服务器上传内容
(5) Head:与get相似,返回没有具体内容,主要用于获取报头
(6) Trace:回显服务器收到请求
(7) Delete:请求服务器删除资源
4、get与post的区别?
(1) 请求方式所放的位置不同
get请求的参数是放在url
post请求的参数是放在实体内容里面的
(2) 传输的数据大小不同
注意:实质上get与post请求方式对于传输的数据大小没有限制,
只是url长度有进行限制,所以会造成get与post请求参数大小要求不一样。
Get:因为它是放在url里面,所以大小一般是在2K以内。
Post:因为它是放在实体内容里面,所以理论上大小不受限制。
(3) 用途不一样
Get:一般是直接用于从服务器上获取资源的(比如平时直接点击
链接打开网页)。
Post:一般是用于向服务器提交数据表单的。(比如提交注册表单)
(4) 安全性不一样
Get:因为参数是直接放在url表单之后,所以直接可以看到数据内容,
相对不安全。
Post:因为参数是放在实体内容里面的,所以不能直观看到数据,
相对更安全。
(5) 是否缓存
Get:请求可以被缓存
Post:请求不会被缓存
(6) 按后退键是否有影响
Get:没有影响
Post:会重新提交一次表单
补充:
实质上get与post请求本质上是没有区别的,只是由于工作形式不一样,所以在应用过程中可能会造成不同的效果。
5、请说出常用的协议及其端口号
TELNET:是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。端口号:23
MYSQL:3306
ORACLE:1521
FTP:文本传输协议,端口号:20
DNS:域名解析协议,端口号:53
TFTP:简单文件传输协议,端口号:69