每天3道面试题 12/26

2016-12-26 22:56 阅读 584 次 评论 0 条

线程是否具有相同的堆栈?dll是否具有独立的堆栈?

线程不是独立的运行单位,进程是程序的运行实体。线程没有自己的堆栈,只能使用它隶属于进程的内存空间。操作系统给每个独立的进程分配内存空间。dll没有自己的内存空间,它的空间依附于调用它的进程。

访问网站的关键步骤有哪些?

1.DNS域名解析:浏览器缓存、系统缓存、路由器、ISP的DNS服务器、根域名服务器。将域名转换成IP地址。

2.与IP地址对应的服务器建立TCP连接:经历三次握手:SYN、ACK、SYN、ACK。

3.以get、post方式发送http请求:get方式发送主机,用户代理,connection属性,cookies等。

4.获得服务器的响应:显示页面。

为什么TCP/IP连接的时候是三次握手,关闭的时候却是四次挥手?

因为当Server端收到Client端的SYN连接请求后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文使用来同步的。但是关闭连接时,Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端:你发的FIN报文我收到了。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。所以需要四次挥手。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:每天3道面试题 12/26 | 术与道的分享
分类:剑指Offer 标签:,
1024do.com导航_术与道导航平台

发表评论


表情