HTTP&HTTPS

网络基本概念

  • 客户端(就是手机或者ipad等手持设备上面的APP)

  • 服务器(远程服务器-本地服务器)

  • 请求(客户端索要数据的方式)

  • 响应(需要客户端解析数据)

  • 数据库(服务器的数据从哪里来)

Http

URL

  • 如何找到服务器(通过一个唯一的URL)

  • URL介绍

a. 统一资源定位符

b. url格式(协议\主机地址\路径)

协议:不同的协议,代表着不同的资源查找方式、资源传输方式

                主机地址:存放资源的主机(服务器)的IP地址(域名)

                路径:资源在主机(服务器)中的具体位置
  • 请求协议

【file】访问的是本地计算机上的资源,格式是file://(不用加主机地址)

【ftp】访问的是共享主机的文件资源,格式是ftp://

【mailto】访问的是电子邮件地址,格式是mailto:

【http】超文本传输协议,访问的是远程的网络资源,格式是http://(网络请求中最常用的协议)

http协议

  • http协议简单介绍

    a.超文本传输协议

    b.规定客户端和服务器之间的数据传输格式

             c.让客户端和服务器能有效地进行数据沟通
    
  • http协议优缺点

a.简单快速(协议简单,服务器端程序规模小,通信速度快)

b.灵活(允许传输各种数据)

c.非持续性连接(1.1之前版本是非持续的,即限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间)

  • 基本通信过程

             a.请求:客户端向服务器索要数据
    
             b.响应:服务器返回客户端相应的数据
    

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
    
  • iOS中发送http请求的方案

苹果原生

NSURLConnection 03年推出的古老技术

NSURLSession 13年推出iOS7之后,以取代NSURLConnection【重点】

CFNetwork 底层技术、C语言的

第三方框架

ASIHttpRequest

AFNetworking 【重点】

MKNetworkKit

http请求通信过程

  • 请求

    -【包括请求头+请求体·非必选】

  • 响应

    -【响应头+响应体】

  • 通信过程

  • 发送请求的时候把请求头和请求体(请求体是非必须的)包装成一个请求对象

  • 服务器端对请求进行响应,在响应信息中包含响应头和响应体,响应信息是对服务器端的描述,具体的信息放在响应体中传递给客户端

  • 状态码

【200】:请求成功

【400】:客户端请求的语法错误,服务器无法解析

【404】:无法找到资源

【500】:服务器内部错误,无法完成请求

你可能感兴趣的:(HTTP&HTTPS)