Android Mock Interview (1) -- HT

2020-01-15  本文已影响0人  plusw

之所以把专题叫做Mock Interview 是因为最近自己也在准备面试,在复习的时候感觉光自己看知识点很容易看完就忘,因此我想通过给自己做一个模拟面试的形式把面试官可能问到的问题都记录下来,并附上解答,最终达到文章写完就好像经历了一次面试的效果。

今天的主题是HTTP。从网上的面经来看,HTTP协议在Android面试中出现频率还是挺高的,下面就来开始我们的Mock Interview。

1. 说一下HTTP协议的格式

HTTP 报文分为请求和响应报文。
请求报文由3部分组成:

响应报文也是3部分:

2. 说几个HTTP方法

(这里我觉得不能只是答GET,POST等等方法名,最好把各个方法的作用或使用场景说一下)

3. GET方法和POST方法有什么区别?

区别一:

区别二:

区别三:

区别四:

区别五:

4. 说一下HTTP 1.0 和 1.1 的区别

5. 说说HTTP状态码

状态码的分类:
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

常见的状态码有:
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向。表示请求的资源已经被分配了新的URI。
302:临时重定向
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关。
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙

6. HTTP 协议首部字段有哪几种?

首部字段大致分为以下4中:
(1) 通用首部字段(请求报文与响应报文都会使用的首部字段)
Date:创建报文时间
Connection:连接的管理
Cache-Control:缓存的控制
Transfer-Encoding:报文主体的传输编码方式

(2) 请求首部字段(请求报文会使用的首部字段)
Host:请求资源所在服务器
Accept:可处理的媒体类型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:可接受的自然语言
If-Modified-Since: 确认代理或客户端拥有的本地资源的有效性。

(3) 响应首部字段(响应报文会使用的首部字段)
Accept-Ranges:可接受的字节范围
Location:令客户端重新定向到的URI
Server:HTTP服务器的安装信息
Retry-After: 告知客户端应该在多久之后再次发送请求。主要配合状态码503 Service Unavailable响应,或3xx redirect响应一起使用

(4) 实体首部字段(请求报文与响应报文的的实体部分使用的首部字段)
Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用

7. 在浏览器中输入baidu.com后都经历了哪些协议?

  1. DNS — 解析出域名对应的IP地址
  2. HTTP — 生成针对目标web服务器的请求报文
  3. TCP — 将HTTP请求报文分割成报文段,把每个报文段可靠地传给对方(三次握手建立连接)
  4. IP — 搜索对方的地址,一边中转一边传送

(我知道的就这几个了,欢迎大神补充)

以上是一部分HTTP协议相关的考点,欢迎各位指正。

Reference

[1] 《图解HTTP》 -- 【日】上野宣

上一篇 下一篇

猜你喜欢

热点阅读