iOS网络基础

2016-11-24  本文已影响46人  华子小筑

iOS网络编程中会涉及一些协议(HTTP/HTTPS)和计算机网络相关概念,只有了解它们的相关机制和概念才能在实际的编程中解决一些出现的问题。本文主要会讲解HTTP、HTTPS、Cookie、Session等概念。

HTTP

HTTP是超文本传输协议,是用于从服务器传输超文本到本地浏览器的传送协议,它是基于TCP实现的,由于TCP是一个端到端的可靠的面向连接的协议,所以HTTP基于传输层TCP协议不用担心数据的传输的各种问题。移动端可通过HTTP向服务端请求数据(JSON/XML)或者下载上传二进制数据等,那么HTTP是如何工作的?

HTTP的工作流程

一次HTTP操作称为一个事务,其工作过程可分为四步:

HTTP请求报文和响应报文的格式

GET 请求报文

 GET /books/?sex=man&name=Professional HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Connection: Keep-Alive

POST 请求报文

  POST / HTTP/1.1
  Host: www.example.com
  User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
  Gecko/20050225 Firefox/1.0.1
  Content-Type: application/x-www-form-urlencoded
  Content-Length: 40
  Connection: Keep-Alive  

  sex=man&name=Professional      

响应报文

 HTTP/1.1 200 OK
 Server:Apache Tomcat/5.0.12
 Date:Mon,6Oct2003 13:23:42 GMT
 Content-Length:112

 <html>...  
GET 与 POST 的区别

GET提交的数据会受到长度限制,GET和POST提交的数据存放位置一个在URL中一个在HTTP Body中;

HTTP 请求的错误码
HTTP Header

会话跟踪

cookie
Session

密文处理

由于目前的app绝大多数已经切换到HTTPS协议,也就是传输的报文都是经过加密的,这其中包含一些相关概念需要讲述。

HTTPS

HTTPS被称为安全的HTTP原因在与它被SSL/TSL包裹了一层,客户端与服务端进行通讯是两者之间共同商议的加密机制对传输报文进行加密操作;

发起一个HTTPS请求,客户端和服务端进行了哪些沟通
计算机网络层级
TCP协议

TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。

UDP协议

UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议

IP协议

I P是T C P / I P协议族中最为核心的协议。所有的T C P、U D P、I C M P及I G M P数据都以I P数据
报格式传输。它的特点不可靠无连接;

TCP的三次握手操作

SYN(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息

TCP的三次握手操作
TCP的四次挥手操作
TCP的四次挥手操作
客户端基于Token的身份验证

文章参照

HTTP协议详解
TCP三次握手和四次挥手
TCP与UDP详解
HTTP
基于 Token 的身份验证

上一篇下一篇

猜你喜欢

热点阅读