HTTP--总结

一、认识HTTP前需要认识:
1、什么是URL
URL全程是Uniform Resource Locator (统一资源路径)。
通过一个URL可以找到互联网唯一的1个资源。
格式:协议://主机地址/路径
http://www.jianshu.com/writer#/notebooks/1365988/notes

   2、这里说到协议,那么什么是协议?
      (1) 协议:不同的协议,代表着不同的资源查找方式,资源传输方式
      (2) 主机地址:存放资源主机(服务器)的IP地址(域名)
      (3) 路径: 资源在主机(服务器)中的具体位置
 
        2.1、 列举一些常见的协议:
        HTTP(超文本传输协议,访问的是远程网络资源,格式http://)
        file (访问的是本地计算机的资源,格式file://不需要加主机地址)
        mailto (访问的是电子邮件地址,格式是mailto:)
        FTP  (访问的是共享主机的文件资源,格式是ftp://)

二、我们这里主要介绍------HTTP协议
1、HTTP介绍:
全称:Hypertext Transfer Protocol---超文本传输协议
特性:Http构建与TCP/IP协议之上,默认端口是80,Http是无连接无状态的。
通信过程: 请求+响应 (索要数据,返回相应的数据才是完整的通信过程)
交互方式:1、GET (查) 2、POST(改) 3、PUT(增) 4、DELETE (删)
ps:1.1协议中定义了8种发送HTTP请求方法,常用就上述四种,get与Post
都可以做到增删改查

   优点:1、由于HTTP服务器程序规模小,通信速度快,允许各种各样的数据。
             2、HTTP0.9和1.0使用非持续行连接:每次连接只处理一个请求,服务器
                  对客户端的请求作出相应后,立即断开连接,节省了传输时间。

       1.1、GET请求: 
        在请求URL后面以?号形式跟上发送服务器的参数,多个参数之间用&隔开
        http://www.suny.com/login?username=123&pwd=456&type=JSON
        一般参数不可以超过1KB,原因是因为浏览器和服务器对URL长度有限制

        1.2、POST请求:
        发送服务器的参数全部放在请求体中,理论数据量无限制

        1.3、两者优缺点:
        大量数据:(文件上传,post请求)
           安全性: 包含机密信息建议用post
        使用目的: 如果只是索取数据,使用get, 增加、修改、删除数据,使用post

     2、由于笔者从事iOS开发,所以介绍iOS开发http请求
     苹果自带:
      NSURLConnection: 古老,用法简单,但是不好用(几乎不用)
      NSURLSession:比上面强,iOS7开始出的,记得是13年
      CFNetwork:NSURL*的底层,纯C语言

     第三方框架:
       ASIHttpRequest:"HTTP终结者",但是已挂,不更新,如今错误也多
       AFNetWorking:小编使用,简单易用。(一般根据需求进行封装)
       MKNetworkKit:这个其实我没用过,印度黑出,不推荐。

    从开发效率上,推荐第三方,个别强人自己搞

    3、HTTP 请求 --完整的Http请求包含以下内容
         (1)请求头:对客户端描述、客户端请求信息等
      GET:/sun.mp4 HTTP/1.1   // 包含请求方法,请求资源路径、Http协议版本
      Accept: text/html,             // 客户端所能接收的数据类型
      Accept-Language:zh-cm   // 客户端的语言环境
      Host:192.168.101.10      // 客户端想访问主机地址
      Accept-Encoding :gzip    // 客户端支持的解压数据
      User-Agent:Mozilla/6.0   // 客户端类型,软件环境
         (2)请求体:----POST请求才会有
        客户端发个服务器的具体数据,比如文件数据

    4、HTTP 响应---HTTP响应也由3个部分构成,分别是:
         (1)状态行
         (2)响应头(Response Header)
         (3)响应正文
          
           200 OK                                       客户端请求成功
           302 Moved Temporarily              请求重定向
           304 Not Modified                 文件未修改,可以直接使用缓存的文件。
           400 Bad Request      由于客户端请求有语法错误,不能被服务器所理解。
           401 Unauthonzed    
           请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
           403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响
                                    应正文中给出不提供服务的原因
           404 Not Found          请求的资源不存在,例如,输入了错误的URL
           500 Internal Server Error
             服务器发生不可预期的错误,导致无法完成客户端的请求。
           503 Service Unavailable

服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。
HTTP响应的例子:
HTTP/1.1 200 OK // 包含HTTP协议版本、状态码、状态英文名称
Server:Apache Tomcat/10.10.0 // 服务器类型
Content-Type : sun.mp4 // 返回数据类型
Date:Mon,6Oct2015 15:25:02 GMT // 相应时间
Content-Length:108 // 返回数据的长度
...

你可能感兴趣的:(HTTP--总结)