网络编程知识总结 之 NSURL网络请求

本文主就iOS开发所使用的NSURL进行简要的概述

iOS网络编程之NSURL网络请求

在此之前首先区分URI、URL、URN这三个术语,这将有助于对iOS 中NSURL的理解。命名全称如下:

  • URI: Uniform Resource Identifier 统一资源标示
  • URL: Uniform Resource Locator 统一资源定位
  • URN: UniformResource Name 统一资源名

URL和URN都是URI的子集

uri、url、urn区别
URN 定义某事物的身份,而 URL 提供查找该事物的方法,URI可被视为定位符,名称或两者兼备

更详细的定义可参见wiki百科

URL定义

URL定义:scheme://[user:password@][hostname]:[port][absolute-path][?query]

scheme :协议名,不带有连接内容的冒号,iOS中常用的事http(s)、file。此外还有ftp、data、mailto等

本文主要针对http请求进行总结

user:password :认证,其中user为用户名,password为密码。不过这种认证方式安全性较低,较少使用

hostname:表示主机名,如果是file协议,hostname和port将会被省略掉;当使用localhost或127.0.0.1作为主机名时URL将会应用本地机器,相同URL在不同机器上可以应用不同的资源。

port:TCP连接的端口号,如果缺省,那么会使用特定协议的默认端口号:http为80,https为443。

absolute-path:绝对路径,指定了网络资源的路径,其中不可包含问号、回车、空格和换行符

query:查询字符串,与绝对路径之间用“?”分隔,多个参数时用“&”来分隔

HTTP简介

HTTP应用层协议建立在TCP/IP协议之上,首先是建立TCP连接,然后通过HTTP协议规定的格式进行网络通讯,HTTPS与HTTP的主要区别在于TCP连接建立完成之后必须建立SSL会话,并且后面的通讯都是通过SSL会话协商的加密方式加密过的。理解HTTP的核心就是理解HTTP请求和响应的格式:

sequenceDiagram
设备应用 -> 服务器:  TCP连接   
服务器  -> 设备应用: SSL回话(HTTP没有)
设备应用 -> 服务器:  发送HTTP请求   
服务器  -> 设备应用: 接受HTTP响应

HTTP请求:请求行+请求头+请求体

GET /zenggen021151 HTTP/1.1  //请求行
Host: blog.csdn.net          //下面均为请求头
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://write.blog.csdn.net/postlist
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,en-US;q=0.4

//请求体为空  
  • 请求行为首行部分内容,包含HTTP请求方法、请求URI和HTTP协议版本,请求方法常用的有GET、POST、HEAD、PUT、DELETE等
  • 请求头是向服务器
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值