zoukankan      html  css  js  c++  java
  • iOS开发中的http浅析

      至于为什么要进行HTTP请求我就不说了。本文主要对HTTP协议做了一些介绍,主要针对网络编程和面试。

    先从流程开始说起

    APP <---> 服务器 <---> 后台​
    1)App 也就是移动端告诉服务器想要什么样的数据。
    2)服务器接收到了命令,去后台查找。
    3)查找完之后,服务器返回给移动端。
      流程其实很好理解,但是落实到代码上就很复杂了。如果我们用AFNetworking第三方库请求数据,只要调用API,填上URL和请求方法(GET和POST)就可以等着服务器返回数据了。其实真实的情况并不是如此简单。那服务器是根据什么知道知道移动端要请求什么数据的呢?我们为什么要填写URL呢?一个完整的URL又包含哪些信息呢?

    URL

    我们每次请求数据都要发送一个发送一个http请求,往方法里传一个参数,就是URL。eg:http://www.cnblogs.com/doujiangyoutiao/。(我的博客地址,会定期更新一些技术博客,欢迎关注。)
    ​​http : 表示这个请求是遵守http协议
    www.cnblogs.com :是服务器的域名。一些个URL没有域名直接就是IP地址,eg:http://42.121.252.58/doujiangyoutiao/ 就是把 www.cnblogs.com 换成42.121.252.58。其实都一样,到最后都得解析成IP地址,就是一串数字。那IP地址有什么用?用处大了,IP地址可以帮我们找到唯一的服务器,不然全世界那么多服务器,鬼知道要向哪台服务器请求数据。
    /doujiangyoutiao/ :就是请求路径,告诉服务器,要请求什么数据了。

    HTTP请求

    那介绍完URL,就该介绍HTTP协议了。HTTP协议规定,一个完整的由客户端发给服务器的HTTP请求包括请求行,请求头,请求体。
    1.请求行:包含了请求方法、请求资源路径、HTTP协议版本;
    GET /u/2552663324 HTTP/1.1
    ​2.请求头:包含了对客户端的环境描述、客户端请求的主机地址等信息
    (1)客户端想访问的主机地址
    ​Host:218.30.115.123
    ​(2)客户端的类型,客户端的软件环境
    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:48.0) Gecko/20100101 Firefox/48.0
    (3)客户端所能接收的数据类型
    Accept:text/html ,/
    (4)客户端的语言环境
    Accept-Language:zh-cn
    (5)客户端支持的数据压缩格式
    Accept-Encoding:gzip
    3.请求体:POST请求才有,GET没有。是客户端发给服务器的具体数据,比如文件数据。

    HTTP请求响应

    客户端向服务器发送请求,服务器应当做出响应,及返回数据给客户端。HTTP协议规定:1个完整的HTTP响应中包换以下内容:状态行,响应头,实体内容,和HTTP请求相对。
    1.状态行:包含了HTTP协议版本、状态码、状态英文名称。
    (1)HTTP/1.1 200 OK
    ​​2.响应头:包含了对服务器的描述、对返回数据的描述。
    (1)服务器的类型
    Server:Apache-Coyote/1.1
    (2)返回数据的类型
    Content-Type:text/html;charset=UTF-8​
    (3)返回数据的长度
    Content-Length:3012
    (4)​​响应的时间
    Date:Wed, 28 Sep 2016 06:38:08 GMT
    3.实体内容:服务器返回给客户端的具体数据,​​比如文件数据。

  • 相关阅读:
    UESTC--1267
    HDU--1394
    rvm 安装后的补充工作:source $HOME/.profile
    FFmpeg 初级使用
    Vue 打包部署上线
    阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4
    响应式网站设计---Bootstrap
    GitBook简单的使用
    VUE 参数共享问题
    Django之JWT理解及简单应用
  • 原文地址:https://www.cnblogs.com/doujiangyoutiao/p/6029461.html
Copyright © 2011-2022 走看看