OSI网络7层协议
应用层 ························· 最上层
会话层
表示层
传输层
网络层
数据链路层
物理层 网卡,设备 ········ 最下层
相应状态码
1xx: Information 信息
2xx:成功获取到数据
3xx:重定向 (不会直接帮你解决,你先去另一个地方找某某某之类的)
4xx: 请求错误 404 not found 最常见
5xx:服务器错误
百分号%转义
将非法字符转换成合法字符
HTTP 80 端口
FTP 20/21 端口
cup 寄存器
缓存(一级,二级,三级)
内存:易失性 断电丢失
闪存:相当于电脑的硬盘,断电不丢失数据,容量大,速度慢
http请求的写法:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let path = "http://www.baidu.com"
let url = NSURL(string: path)!
let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in
//data: 下载到的数据, NSdata
//response 响应结果, status code以及header field头文件,
//NSURLResponse, NSHTTPURLResponse
//error:请求是否出错,如果为nil,请求没出错,NSError
//连接到之前可能会产生错误,可能服务器挂了,可能网络不稳定等
//所有要写一个解决问题的判断句
if let e = error{
print("网络提示: \(e.localizedDescription)")
}
else {
//没有错
if let httpResponse = response as?
NSHTTPURLResponse{
//服务器有相应
if httpResponse.statusCode == 404 {
//404 Not Found,URL对应资源不存在
}
else if httpResponse.statusCode == 200{
//请求成功,获取到了数据
if let d = data {
//需要进一步处理,也许格式不同
//将数据转换为UTF-8格式的字符串
let html = NSString(data: d, encoding: NSUTF8StringEncoding)
print(html)
}
}
}
}
print("请求结果: \(data!.length)")
}
task.resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
iOS默认只允许https的请求
可以修改info.plist中的文件来允许http
网友评论