iOS 网络常识
DNS的含义
DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议,它提供域名到IP之间的解析服务。
一个app是如何跟服务端通信的
P15
先从DNS获取对应的IP地址
HTTP职责,生成针对服务器的HTTP请求报文
TCP协议的职责,将HTTP请求报文分割成报文段,把每个报文可靠地传给对方
IP协议的职责,搜索对方的地址,一边中转一边传给对方
TCP协议的职责,从对方那里接收的报文段,重组到达的报文段,按序号以原来的顺序重组请求报文
HTTP,对服务器请求的内容进行处理
请求的处理结果也同样利用TCP/IP通信协议向用户方向进行回传
HTTP协议的规定
HTTP协议规定,请求从客户端发出,最后服务器响应该请求并返回。换句话说,肯定是先从客户端开始建立连接通信的,服务器端在没有接收请求之前不会发送响应。
HTTP是一种不保存状态,既无状态协议。协议对于发送过的请求或响应都不做持久化处理。
告知服务器意图的HTTP/1.1方法
1)GET:获取资源
我想要访问你的某个资源
2)POST:传输实体主体
我要把这条消息告诉你
3)PUT:传输文件
我要把这个文件传给你
由于HTTP1.1的PUT方法不带有验证机制,存在安全性问题,因此一般网站不使用该方法。
4)HEAD:获取报文首部
把那个的相关信息发给我
HEAD和GET方法一样,只是不返回报文的主体部分。用于确认URI的有效性及资源更新的日期时间等。
5)DELETE删除文件
快把那个文件删掉吧。
类似PUT不带有验证性,所以一般也不会使用。
6)OPTIONS:询问支持的方法。
你支持那些方法。
OPTIONS方法用来查询针对请求的URI制定的资源支持的方法。
7)TRACE:追踪路径
TRACE方法是让服务器将之前的请求通信返回给客户端的方法。
8)CONNECT:要求用隧道协议连接代理
CONNECT方法要求在与代理服务通信时建立隧道,实现用隧道协议进行TCP通信。主要是用SSL和TLS协议把通信内容加密后经网络隧道传输。
状态码类别
状态码 | 类别 | 原因短语 |
---|---|---|
1XX | 信息性状态码 | 接收的请求正在处理 |
2XX | 成功状态码 | 请求正常处理完毕 |
3XX | 重定向状态码 | 需要进行附加操作已完成请求 |
4XX | 客户端错误码 | 服务器无法处理请求 |
5XX | 服务器错误码 | 服务器处理请求出错 |
代理 网管
代理:不能改变请求的URI, 回直接发送给持有资源的目标服务器。
网管:能够提高通信的安全性,能使通信线路伤的服务器提供非HTTP协议的服务.
以上都是参考《图解HTTP》