HTTP基本概念


0. 本节知识点:

  1. URL
  2. http协议
  3. GET和POST请求
  4. iOS中发送http请求的方案
  5. http请求通信过程


1. URL

  • 如何找到服务器(通过一个唯一的URL)
  • URL介绍
    • a. 统一资源定位符
    • b. url格式(协议\主机地址\路径)
      • 协议:不同的协议,代表着不同的资源查找方式、资源传输方式
      • 主机地址:存放资源的主机(服务器)的IP地址(域名)
      • 路径:资源在主机(服务器)中的具体位置
  • 请求协议
    • 【file】访问的是本地计算机上的资源,格式是file://(不用加主机地址)
    • 【ftp】访问的是共享主机的文件资源,格式是ftp://
    • 【mailto】访问的是电子邮件地址,格式是mailto:
    • 【http】超文本传输协议,访问的是远程的网络资源,格式是http://(网络请求中最常用的协议)


2. http协议

  • http协议简单介绍
    • a.超文本传输协议
    • b.规定客户端和服务器之间的数据传输格式
    • c.让客户端和服务器能有效地进行数据沟通
  • http协议优缺点
    • a.简单快速(协议简单,服务器端程序规模小,通信速度快)
    • b.灵活(允许传输各种数据)
    • c.非持续性连接(1.1之前版本是非持续的,即限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间)
  • 基本通信过程
    • a.请求:客户端向服务器索要数据
    • b.响应:服务器返回客户端相应的数据


3. GET和POST请求

  • http里面发送请求的方法
    • GET(常用)、POST(常用)、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
  • GET和POST请求的对比【区别在于参数如何传递】
    • GET
      • 在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如
      • http://ww.test.com/login?username=123&pwd=234&type=JSON
      • 由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
    • POST
      • 发给服务器的参数全部放在请求体中
      • 理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
  • 如何选择【除简单数据查询外,其它的一律使用POST请求】
    • a.如果要传递大量数据,比如文件上传,只能用POST请求
    • b.GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
    • c.如果仅仅是索取数据(数据查询),建议使用GET
    • d.如果是增加、修改、删除数据,建议使用POST


4. iOS中发送http请求的方案

  • 苹果原生
    • NSURLConnection 03年推出的古老技术
    • NSURLSession:【重点】13年推出iOS7之后, 以取代NSURLConnection
      • 功能强大; 能支持后台网络请求与数据传输等;
    • CFNetwork: 底层技术、C语言的(前两种都是基于这个, 开发中基本用不上)
  • 第三方框架
    • ASIHttpRequest: 外号“HTTP终结者”,功能极其强大,可惜早已停止更新
    • AFNetworking:【重点】简单易用,提供了基本够用的常用功能,维护和使用者多
    • MKNetworkKit: 维护和使用者少, 功能强大, 但是上手较难
  • 建议: 为了提高开发效率,企业开发用的基本是第三方框架


5. http请求通信过程

  • 请求: 【包括请求头+请求体?非必选】
  • 响应: 【响应头+响应体】
  • 通信过程
    • a.发送请求的时候把请求头和请求体(请求体是非必须的)包装成一个请求对象
    • b.服务器端对请求进行响应,在响应信息中包含响应头和响应体,响应信息是对服务器端的描述,具体的信息放在响应体中传递给客户端
  • 状态码
    • 【200】:请求成功
    • 【400】:客户端请求的语法错误,服务器无法解析
    • 【404】:无法找到资源
    • 【500】:服务器内部错误,无法完成请求

results matching ""

    No results matching ""