HTTP协议学习笔记

本文是关于HTTP协议的学习笔记,详细介绍了HTTP协议的通信过程,包括请求和响应的组成部分。探讨了GET和POST请求的区别,并讲解了在iOS中如何使用NSURLConnection发送HTTP请求。
摘要由CSDN通过智能技术生成

HTTP协议

1.面试题:聊一下HTTP协议(协议的完整通信过程)

2.通信过程
1> 请求

  • 客户端 -> 服务器
  • 请求的内容
    a. 请求行(请求方法,GET还是POST;/HTTP协议,版本号,1.1还是1.0;/请求资源路径,url)
    b. 请求头(描述客户端的信息,客户端的操作系统,要请求数据的一些信息,等)
    c. 请求体(POST请求才需要有,存放具体数据)

2> 响应

  • 服务器 -> 客户端
  • 响应的内容
    a. 状态行(响应行,状态码)
    b. 响应头(服务器的信息,返回数据的类型,返回数据的长度)
    c. 实体内容(响应体,返回给客户的具体内容)

3.HTTP请求的方法

1> GET

  • 参数都拼接在URL后面
  • 参数有限制

2> POST

  • 参数都在请求体
  • 参数没有限制

4.iOS中发送GET/POST请求的手段
1> NSURLConnection

//发送一个同步请求
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error;
//发送一个异步请求
+ (void)sendASynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)NSURLResponse *response, NSData *data, NSError *connectionError)) handler;
//代理的方法(异步)
//有四种方法,实现的效果是一样的:
[NSURLConnection conectionWithRequest:request delegate:self];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

NSURLConnection *connection = [NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
/*这里可以做一些操作,然后再开始请求数据*/
[connection start];

NSURLConnection局部对象(例如上面的connection)不会被自动销毁,请求完成后才会被销毁;所以上面前三句代码没有创建对象也可以完成请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值