面试笔记

一句话概括项目:基于Zigbee信号的隧道人员定位与安全监测系统。

  • 在项目中具体做过的工作:编写项目方案,查找有关Zigbee室内定位技术论文以及相关文档的整理和总结,寻求最合适的定位模型,利用matlab进行简单的仿真,三层结构。
  • 项目中的关键技术:网络方面,Zigbee定位算法。
  • 对于本职业所拥有的优势:资料分析师。
  • 对于公司的了解:华为。
  • 软件工程中开发模式:
    对于TCP/IP、UDP等技术的理解,进程和线程的区别、http协议。
    运输层协议概述:传输层协议,进程之间的通信,传输层向应用层提供通信服务,传输层提供应用进程间的逻辑通信,网络层为主机之间提供逻辑通信。“逻辑通信”:好像此方式,但并非如此通信。传输层对从应用层收到的报文进行差错检测。
    面向连接的TCP无连接的UDP
    UDP:用户数据包协议
  • UDP是无连接的,即发送数据之前不需要建立连接(当然,发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。
  • UDP使用尽最大努力交付,即不保证可靠交付,也不做拥塞控制,因此主机不需要维持复杂的连接状态表。
  • UDP是面向报文的。
  • UDP无拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。(IP电话、实时视频会议等。)
  • UDP支持一对一、一对多、多对一和多对多的交互通信。
    TCP:传输控制协议
    两个对等运输实体在通信时传送的数据单元叫作运输协议数据单元(TPDU)。
    万维网:应用层协议HTTP、传输层协议TCP。
    TCP/IP的传输层用一个16位端口号来标志一个端口。

    HTTP面试题

    什么是Http:客户端和服务器请求和应答的标准(TCP),超文本传输协议。

什么是Http无状态协议?怎么解决Http协议无状态协议?
(1)无状态协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
(2)无状态协议解决办法:需要通过不同的技术为交互存储状态,利用Cookie和Session。

Http协议由什么组成?
请求报文和响应报文:请求行、请求头、空行、消息主体。

Http协议中的请求方式:
Options:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
Head:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况,就可以获取包含在响应消息头中的元信息。
GET:向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除Request-URI所标识的资源。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:Http/1.1协议中预留给能够将连接改为管道方式的代理服务器。

GET和POST的区别:
GET请求无消息体,只能携带少量数据
POST请求有消息体,可以携带大量数据

携带数据方式:

  • GET请求将数据放在url地址中
  • POST请求将数据放在消息体中

GET请求提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

Http协议中Http1.0和1.1的区别

1、HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理

HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

HTTP 1.1则支持持久连接Persistent Connection, 并且默认使用persistent connection. 在同一个tcp的连接中可以传送多个HTTP请求和响应. 多个请求和响应可以重叠,多个请求和响应可以同时进行. 更加多的请求头和响应头(比如HTTP1.0没有host的字段).

在1.0时的会话方式:

  1. 建立连接
  2. 发出请求信息
  3. 回送响应信息
  4. 关掉连接

HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。例如:一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。 HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容。

2.HTTP 1.1增加host字段

在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。

HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。此外,服务器应该接受以绝对路径标记的资源请求。

3、100(Continue) Status(节约带宽)

HTTP/1.1加入了一个新的状态码100(Continue)。客户端事先发送一个只带头域的请求,如果服务器因为权限拒绝了请求,就回送响应码401(Unauthorized);如果服务器接收此请求就回送响应码100,客户端就可以继续发送带实体的完整请求了。100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。

4、HTTP/1.1中引入了Chunked transfer-coding来解决上面这个问题,发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块的长度,最后用一个零长度的块作为消息结束的标志。这种方法允许发送方只缓冲消息的一个片段,避免缓冲整个消息带来的过载。

5、HTTP/1.1在1.0的基础上加入了一些cache的新特性,当缓存对象的Age超过Expire时变为stale对象,cache不需要直接抛弃stale对象,而是与源服务器进行重新激活(revalidation)。

猜你喜欢

转载自www.cnblogs.com/zyg-/p/8889220.html
今日推荐