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网络发送网络请求的步骤

  1. 实例化URL(网络资源)
  2. 根据URL建立URLRequest(网络请求)
  • 默认为GET请求
  • 对于POST请求,需要创建请求的数据体
  1. 利用URLConnection发送网络请求(建立连接)
  2. 获得结果
  • 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

swift开发网络篇 - 网络基础的更多相关文章

  1. swift开发多线程篇 - 多线程基础

    swift开发多线程篇 - 多线程基础 iOS 的三种多线程技术 (1)NSThread  使用NSThread对象建立一个线程非常方便 但是!要使用NSThread管理多个线程非常困难,不推荐使用 ...

  2. iOS开发网络篇—网络编程基础

    iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过 ...

  3. iOS开发网络篇—网络请求(HTTP协议)小结

    iOS开发网络篇—网络请求(HTTP协议)小结 iOS开发网络篇—网络请求(HTTP协议)小结 1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> ...

  4. iOS开发UI篇—Button基础

    iOS开发UI篇—Button基础 一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状 ...

  5. iOS开发网络篇—网络编程基础(一)

    一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过网络跟外界进行数据交互.数据更新 ...

  6. ESP8266开发之旅 网络篇⑥ ESP8266WiFiGeneric——基础库

    1. 前言     在前面的博文中,博主介绍到ESP8266WiFi库是包含了很多功能的一个超级库.ESP8266WiFi库不仅仅局限于 ESP8266WiFi.h 和 ESP8266WiFi.cpp ...

  7. iOS开发网络篇—网络编程基础(二)

    下面叙述的是关于几个必须要知道的iOS网络编程入门级别的要点:       1.客户端如何找到连接的服务器    客户端通过URL找到想要连接的服务器   2.什么是URL     URL的全称是Un ...

  8. python 网络篇(计算机网络基础)

                               计算机网络的发展及基础网络概念                    广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...

  9. iOS开发网络篇—网络请求(HTTP协议)小结(转)

    1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> 服务器 * 请求的内容 a. 请求行(请求方法\HTTP协议\请求资源路径) b. 请求头( ...

随机推荐

  1. POJ 2374 线段树建图+Dijkstra

    题意: 思路: 线段树+Dijkstra(要堆优化的) 线段树要支持打标记 一个栅栏 拆成两个点 :左和右 新加一个栅栏的时候 看看左端点有没有被覆盖过 如果有的话 就分别从覆盖的那条线段的左右向当前 ...

  2. Android 多线程下载,断点续传,线程池

    你可以在这里看到这个demo的源码: https://github.com/onlynight/MultiThreadDownloader 效果图 这张效果图是同时开启三个下载任务,限制下载线程数量的 ...

  3. 通过no-gui模式运行jmeter脚本与生成报告

    说明:使用NO-GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 步骤:在GUI(图形化界面)模式调整好脚本,通过FTP工具将需要测试的.jmx文件传输到linux ...

  4. 使用Multiplayer Networking做一个简单的多人游戏例子-1/2

    原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 本文主要讲述了如何使用Multiplayer Networking开发多人游 ...

  5. 修改chrome的安装目录(默认的竟然安装在documents and settings目录,google真不厚道)

    修改chrome的安装目录(默认的竟然安装在documents and settings目录,google真不厚道) 把chrome从系统目录提取出来 Vista下,Win+R运行 C:/Users/ ...

  6. GitHub上常用命令(工作中几乎每天用到的命令)

    查看自己当前分支 git branch 查看远程和本地分支 git branch -a 查看origin下的分支 git config -vv git config --lis 创建分支 git br ...

  7. Wicket实战(二)hello world

    上次的博文Wicket实战(一)概述中给大家简介了一下关于Wicket的概念性内容,今天我们完毕第一个Wicket实例-Hello World! 1.Hello World原版        在Wic ...

  8. JIRA6.3.6 安装汉化破解指南

    JIRA6.3.6 安装汉化破解指南 近期试着安装了下JIRA,碰到了些问题.特记录下来,供后来者使用: 1.常规安装 1.1. 下载并安装jira 从官网下载atlassian-jira-6.3.6 ...

  9. Android Material风格的应用(二)--RecyclerView

    添加RecyclerView Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndro ...

  10. WebApp调用手机相册或摄像头、拨打电话

    WebApp调用手机相册或摄像头.拨打电话 一.总结 一句话总结:input标签,指定type为file,选择好对应的accept即可.camera——相机,相应的accept为image : cam ...