各种面试最基本网络问题

1.TCP/IP是什么?

TCP/IP是一组协议的代名词,该协议簇分为四层:应用层  、  传输层  、  互联网络层  、  网络接口层。

每层的网络协议内容:

应用层:电子邮件传输(smtp)文件传输协议(FTP)网络远程访问协议(Telnet)

传输层:传输控制协议(TCP)用户数据报协议(udp)

互联网络层:网际协议(IP)

网络接口层:

(TCP位于协议簇的第3层,OSI的第4层,IP位于协议簇的第2层,OSI的第3层)

2.OSI是什么?

 开放式系统互联参考模型,为了解决异种网络互联时所遇到的兼容性问题。

7层内容:应用层  、  表示层  、  会话层  、  传输层  、  网络层  、  数据链路层  、  物理层

3.url完成加载经历了什么?

●DNS Lookup 先获得URL对应的IP地址(DNS服务器就像一个电话号码薄,根据你说的人名找到对应的号码)

●Socket Connect 浏览器和服务器建立TCP链接建立(socket链接是ip和端口的建立)

●Send Request 发送HTTP请求

●Content Download 服务器发送响应

经过DNS域名解析后获得url对应的IP地址,然后通过获取的的ip和端口建立一个socket链接,此时开始向服务器发送一个get和post请求

在tcp协议提供可靠的链接,,tcp经过三次握手建立一个链接

第一次握手:客户端发送一个syn包到服务器,并进入syn_send状态,等待服务器的确认。

第二次握手:服务器收到syn包,必须确认客户的syn包,同时给自己发送一个syn包,此时服务器进入syn_recv状态

第三次握手:客户端与服务器开始传送数据

web服务器传送一些http头信息,然后传送具体信息。

4.如何将数据库的数据显示在网页上?又如何将前台的数据(加以验证后) 存储到数据库中?

通过js获取DOM(文档对象模型)获取页面控件上的内容:例如getElementById,getElementByName...

通过ajax选择请求的方式,回掉函数判断传输的内容是否正确,通过json对象的形式传送给后台。

同理 后台获取的json数据,进行解析,通过截取字符串显示在前台的控件上。

5.url的请求方式(向服务器发送请求的方式get/set)

url请求过程中,经过DNS域名解析后,获得域名对应的ip地址,在建立ip和端口之间的socket链接,经过tcp的三次握手,建立了浏览器和服务器之间的链接,链接建立后,开始向web服务器发送请求,请求一般get或post方式。(http定义了与服务器交互的不同方式:get,post,put,delete)

HTTP GET 

发送
GET /DEMOWebServices2.8/Service.asmx/CancelOrder?UserID=string&PWD=string&OrderConfirmation=string HTTP/1.1
Host: api.efxnow.com
回复
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length


<?xml version="1.0" encoding="utf-8"?>
<objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
<Success>boolean</Success>
<ErrorDescription>string</ErrorDescription>
<ErrorNumber>int</ErrorNumber>
<CustomerOrderReference>long</CustomerOrderReference>
<OrderConfirmation>string</OrderConfirmation>
<CustomerDealRef>string</CustomerDealRef>
</objPlaceOrderResponse>
HTTP POST 发送
POST /DEMOWebServices2.8/Service.asmx/CancelOrder HTTP/1.1
Host: api.efxnow.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

UserID=string&PWD=string&OrderConfirmation=string
回复
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
<Success>boolean</Success>
<ErrorDescription>string</ErrorDescription>
<ErrorNumber>int</ErrorNumber>
<CustomerOrderReference>long</CustomerOrderReference>
<OrderConfirmation>string</OrderConfirmation>
<CustomerDealRef>string</CustomerDealRef>
</objPlaceOrderResponse>

通过上面的例子,我们可以看出

1.数据包含的方式:get请求将数据 作为一个key/value对的序列附在url之后,post提交的数据放在http的包体中

2.传输数据的大小:get请求url有限(2083字节),post不通过url传值,所以理论上不受限制。

3.安全性:post请求方式比get请求方式更安全。

6.请求后常出现的状态码

200 (ok)找到资源,一切正常。

304(not modified)该资源在上次请求后没有任何修改,这通常用于浏览器得 缓存机制。

401(unauthorized)客户端无权访问该资源,这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。

403(forbidden)客户端未能获得授权,这通常在401之后输入了不正确的用户名和密码

404(not found)在制定的位置不存在所申请的资源

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值