swift开发网络篇 - 网络基础
GET & POST
- GET
- GET的语义是获取指定URL的资源
- 将数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用"?"连接,各变量之间使用"&"连接
- 貌似不安全,因为在传输过程中,数据被放在请求的URL中
- 传输的数据量小,这主要是因为受URL长度限制
- 示例:http://localhost//login.php?username=zhangsan&password=zhang
- 本地主机 资源名称 变量名password,变量数值zhang
-
语义:从本地主机的login.PHP资源获取(操作)指定用户名和密码的登录情况
- POST
- POST的语义是向指定URL的资源添加数据
- 将数据放在数据体中,按照变量和值相对应的方式,传递到action所指向URL
- 所有数据对用户来说不可见
- 可以传输大量数据,上传文件只能使用Post
- 示例: http://localhost/login.php
- 本地主机 资源名称
-
语义:向本地主机的login.php资源添加用户名和密码,并获得登录情况
提示:用户名和密码包装在网络请求的数据体中,在URL中不可见
在浏览器中判断GET&POST请求
- 因为POST请求会向服务器发送数据体,因此在刷新页面时会出现提示窗口
- 而GET请求不会向服务器发送数据体,因此没有提示
- 从请求的本质而言,GET请求要比POST请求更安全,效率也会更高
利用Firebug轻松查看Post请求的内容
iOS网络发送网络请求的步骤
- 实例化URL(网络资源)
- 根据URL建立URLRequest(网络请求)
- 默认为GET请求
- 对于POST请求,需要创建请求的数据体
- 利用URLConnection发送网络请求(建立连接)
- 获得结果
- NSURLConnection提供了两个静态方法可以直接以同步或异步的方式向服务器发送网络请求
- 同步请求:sendSynchronousRequest:returningResponse:error:
- 异步请求:sendAsynchronousRequest:queue: completionHandler:
网络传输之二进制数据流
- 在网络请求过程中,接收数据的过程实际上是通过NSURLConnectionDataDelegate来实现的,常用代理方法包括:
- 服务器开始返回数据,准备工作
- (void)connection:didReceiveResponse:
- 收到服务器返回的数据,本方法会被调用多次
- (void)connection:didReceiveData:
- 数据接收完毕,做数据的最后处理
- (void)connectionDidFinishLoading:
- 网络连接错误
- (void)connection:didFailWithError:
使用代理实现关联性较强的业务逻辑时
在今后的开发中,如果使用简单的get/head请求,可以使用NSURLConnction异步方法
get 查/post 增/put 改/delete 删/ head
数据加密——MD5
- Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321
- MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现
- MD5的典型应用是对一段字节串产生指纹,以防止被“篡改”。例如,可以对一个readme.txt生成一个MD5的值并记录在案,如果其他人修改了文件中的任何内容,对该文件重新计算的MD5值会发生变化
- MD5还广泛用于操作系统的登录认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面
- 不可逆
- 同样的数据加密结果是一样的?密码上的一个忌讳
- 加点”盐”私钥
- http://www.cmd5.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2016-02-22 eclipse项目迁移到android studio(图文最新版)
2016-02-22 ListView的Item被点击和其中的Button被点击同时生效