博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发中的http浅析
阅读量:5756 次
发布时间:2019-06-18

本文共 1510 字,大约阅读时间需要 5 分钟。

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

先从流程开始说起

APP <---> 服务器 <---> 后台​

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

URL

  我们每次请求数据都要发送一个发送一个http请求,往方法里传一个参数,就是URL。eg:。(我的博客地址,会定期更新一些技术博客,欢迎关注。)

​​http : 表示这个请求是遵守http协议
www.cnblogs.com :是服务器的域名。一些个URL没有域名直接就是IP地址,eg: 就是把 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.实体内容:服务器返回给客户端的具体数据,​​比如文件数据。

转载于:https://www.cnblogs.com/doujiangyoutiao/p/6029461.html

你可能感兴趣的文章
浅尝TensorFlow on Kubernetes
查看>>
springboot系列十 Spring-Data-Redis
查看>>
Confluence 6 注册外部小工具
查看>>
excel进行矩阵计算
查看>>
基于Android平台的动态生成控件和动态改变控件位置的方法
查看>>
linux 死机分析
查看>>
BOM
查看>>
LeetCode:Nim Game - 尼姆博弈
查看>>
iOS: Block的循环引用
查看>>
mysql实战02 | 日志系统:一条SQL更新语句是如何执行的?
查看>>
测试九 赛后感受
查看>>
ECC椭圆曲线详解(有具体实例)
查看>>
关于WechatApp学习总结
查看>>
Linux常见命令(二)
查看>>
PyCharm切换解释器
查看>>
jmp far ptr s所对应的机器码
查看>>
css详解1
查看>>
【转载】Presentation at from Yoshua Bengio
查看>>
MySQL类型转换
查看>>
HashSet HashMap 源码阅读笔记
查看>>