【Android面试】计算机网络面试题整理(二)
一、网页中输入url,到渲染整个界面的整个过程,以及中间用了什么协议?
1)过程分析:主要分为三步
- DNS解析。用户输入url后,需要通过DNS解析找到域名对应的ip地址,有了ip地址才能找到服务器端。首先会查 找浏览器缓存,是否有对应的dns记录。再继续按照操作系统缓存—路由缓存—isp的dns服务器—根服务器的顺 序进行DNS解析,直到找到对应的ip地址。
- 客户端(浏览器)和服务器交互。浏览器根据解析到的ip地址和端口号发起HTTP请求,请求到达传输层,这里也 就是TCP层,开始三次握手建立连接。服务器收到请求后,发送相应报文给客户端(浏览器),客户端收到相应 报文并进行解析,得到html页面数据,包括html,js,css等。
- 客户端(浏览器)解析html数据,构建DOM树,再构造呈现树(render树),最终绘制到浏览器页面上。
2)其中涉及到TCP/IP协议簇,包括DNS,TCP,IP,HTTP协议等等。
二、具体介绍下TCP/IP
TCP/IP一般指的是TCP/IP协议簇,主要包括了多个不同网络间实现信息传输涉及到的各种协议 主要包括以下几层:
- 应用层:主要提供数据和服务。比如HTTP,FTP,DNS等
- 传输层:负责数据的组装,分块。比如TCP,UDP等
- 网络层:负责告诉通信的目的地,比如IP等
- 数据链路层:负责连接网络的硬件部分,比如以太网,WIFI等
三、HTTP的几种请求方法具体介绍
- GET 获取资源,没有body,幂等性
- POST 增加或者修改资源,有body
- PUT 修改资源,有body,幂等性
- DELETE 删除资源,幂等性
四、HTTP请求和响应报文的格式,以及常用状态码。
#android面试#1)请求报文:
//请求行(包括method、path、HTTP版本) GET /s HTTP/1.1 //Headers Host: www.baidu.com Content-Type: text/plain //Body 搜索****
2)响应报文
//状态行 (包括HTTP版本、状态码,状态信息) HTTP/1.1 200 OK //Headers Content-Type: application/json; charset=utf-8 //Body [{"info":"xixi"}]
3)常用状态码 主要分为五种类型:
- 1开头, 代表临时性消息,比如100(继续发送)
- 2开头, 代表请求成功,比如200(OK)
- 3开头, 代表重定向,比如304(内容无改变)
- 4开头, 代表客户端的一些错误,比如403(禁止访问)
- 5开头, 代表服务器的一些错误,比如500