第十一篇:Objective-C 知识回顾网络相关之一
2019-12-02 本文已影响0人
望穿秋水小作坊
网络相关问题大纲
11.1.HTTP
问题一: HTTP 的请求方式有哪些?
- POST
- GET
- PUT
- DELETE
- HEAD
- OPTIONS
问题二: GET 和 POST 方式的区别(初级程序员的回答)?
- GET 请求参数以?分割拼接到 URL 后面,POST 请求参数在 Body 里面
- GET 参数长度限制 2048 个字符,POST 一般没有该限制
- GET 请求不安全,POST 请求比较安全
问题三: GET 和 POST 方式的区别(更标准的回答)?
从语义的角度来回答
- GET:获取资源(安全的,幂等的,可缓存的)
- POST:处理资源(非安全的,非幂等的,不可缓存的)
- 安全性:不应该引起 Server 端的任何状态变化
- 幂等性:同一个请求方法执行多次和执行一次的效果完全相同
- 可缓存性:请求是否可以被缓存(官方文档定义的一种规范,代理服务器会进行缓存)
问题四:你都了解哪些状态码,他们的含义是什么?
- 1xx
- 2xx:常见的 200 代表响应成功
- 3xx:常见的 301 发生了一些网络重定向
- 4xx:常见的 404 表示客户端的发起的请求可能存在问题
- 5xx: 常见的 500 一般表示服务端代码出了一些问题
问题八:HTTP 有哪些特点?
- 无连接:每进行一次 HTTP 通信,都要断开一次 TCP 连接,早期只是传输很小的文本,不存在问题。后面 HTTP 的普及,包含了大量图片和其他数据,每次请求完成都要断开 TCP 连接,无疑增加了通信量的开销。
- 无连接的问题,通过HTTP1.1 提出的持久连接方法,任意一段只要没有明确提出断开连接,则保持 TCP 连接状态。
- 无状态:HTTP 协议无法根据之前的状态进行本次请求的处理。优点是减少服务端的 CPU 以及内存资源的消耗。缺点就是加入某些信息需要登录后才能访问,由于无状态,每次服务端都不知道用户是否登录。
- 无状态的问题,通过 Cookie 和 Session 的共同协作,让用户的发送的请求带有一些标记性的信息即可。
问题九: 持久连接的头部字段?
- Connection:keep-alive (使用持久连接的方法)
- time:20(一次连接的最长等待时间)
- max:10 (一次连接最多能发送多少个 http 请求)
问题十: 怎么样判断持久连接中的一个请求是否结束?
- Content-length:1024
- chunked,最后会有一个空的 chunked