一、认识HTTP前需要认识: 1、什么是URL URL全程是Uniform Resource Locator (统一资源路径)。 通过一个URL可以找到互联网唯一的1个资源。 格式:协议://主机地址/路径 http://www.jianshu.com/writer#/notebooks/1365988/notes
2、这里说到协议,那么什么是协议? (1) 协议:不同的协议,代表着不同的资源查找方式,资源传输方式 (2) 主机地址:存放资源主机(服务器)的IP地址(域名) (3) 路径: 资源在主机(服务器)中的具体位置 2.1、 列举一些常见的协议: HTTP(超文本传输协议,访问的是远程网络资源,格式http://) file (访问的是本地计算机的资源,格式file://不需要加主机地址) mailto (访问的是电子邮件地址,格式是mailto:) FTP (访问的是共享主机的文件资源,格式是ftp://)二、我们这里主要介绍------HTTP协议 1、HTTP介绍: 全称:Hypertext Transfer Protocol---超文本传输协议 特性:Http构建与TCP/IP协议之上,默认端口是80,Http是无连接无状态的。 通信过程: 请求+响应 (索要数据,返回相应的数据才是完整的通信过程) 交互方式:1、GET (查) 2、POST(改) 3、PUT(增) 4、DELETE (删) ps:1.1协议中定义了8种发送HTTP请求方法,常用就上述四种,get与Post 都可以做到增删改查
优点:1、由于HTTP服务器程序规模小,通信速度快,允许各种各样的数据。 2、HTTP0.9和1.0使用非持续行连接:每次连接只处理一个请求,服务器 对客户端的请求作出相应后,立即断开连接,节省了传输时间。 1.1、GET请求: 在请求URL后面以?号形式跟上发送服务器的参数,多个参数之间用&隔开 http://www.suny.com/login?username=123&pwd=456&type=JSON 一般参数不可以超过1KB,原因是因为浏览器和服务器对URL长度有限制 1.2、POST请求: 发送服务器的参数全部放在请求体中,理论数据量无限制 1.3、两者优缺点: 大量数据:(文件上传,post请求) 安全性: 包含机密信息建议用post 使用目的: 如果只是索取数据,使用get, 增加、修改、删除数据,使用post 2、由于笔者从事iOS开发,所以介绍iOS开发http请求 苹果自带: NSURLConnection: 古老,用法简单,但是不好用(几乎不用) NSURLSession:比上面强,iOS7开始出的,记得是13年 CFNetwork:NSURL*的底层,纯C语言 第三方框架: ASIHttpRequest:"HTTP终结者",但是已挂,不更新,如今错误也多 AFNetWorking:小编使用,简单易用。(一般根据需求进行封装) MKNetworkKit:这个其实我没用过,印度黑出,不推荐。 从开发效率上,推荐第三方,个别强人自己搞 3、HTTP 请求 --完整的Http请求包含以下内容 (1)请求头:对客户端描述、客户端请求信息等 GET:/sun.mp4 HTTP/1.1 // 包含请求方法,请求资源路径、Http协议版本 Accept: text/html, // 客户端所能接收的数据类型 Accept-Language:zh-cm // 客户端的语言环境 Host:192.168.101.10 // 客户端想访问主机地址 Accept-Encoding :gzip // 客户端支持的解压数据 User-Agent:Mozilla/6.0 // 客户端类型,软件环境 (2)请求体:----POST请求才会有 客户端发个服务器的具体数据,比如文件数据 4、HTTP 响应---HTTP响应也由3个部分构成,分别是: (1)状态行 (2)响应头(Response Header) (3)响应正文 200 OK 客户端请求成功 302 Moved Temporarily 请求重定向 304 Not Modified 文件未修改,可以直接使用缓存的文件。 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。 401 Unauthonzed 请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响 应正文中给出不提供服务的原因 404 Not Found 请求的资源不存在,例如,输入了错误的URL 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。 503 Service Unavailable服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。 HTTP响应的例子: HTTP/1.1 200 OK // 包含HTTP协议版本、状态码、状态英文名称 Server:Apache Tomcat/10.10.0 // 服务器类型 Content-Type : sun.mp4 // 返回数据类型 Date:Mon,6Oct2015 15:25:02 GMT // 相应时间 Content-Length:108 // 返回数据的长度 <html>...
---来自腾讯云社区的---雷潮
微信扫一扫打赏
支付宝扫一扫打赏