《android开发进阶从小工到专家》读书笔记--HTTP网络请求

No1:

客户端与服务器的交互流程:

1)客户端执行网络请求,从URL中解析出服务器的主机名

2)将服务器的主机名转换成服务器的IP地址

3)将端口号从URL中解析出来

4)建立一条从客户端与Web服务器的TCP连接

5)客户端通过输出流向服务器发送一条HTTP请求

6)服务器向客户端回送一条HTTP响应报文

7)客户端从输入流获取报文

8)客户端解析报文,关闭连接

9)客户端将结果显示在UI上

No2:

HTTP请求方式:

1)GET

获取服务器中某个资源,www.devtf.cn/articles/123.html?username=myname&userid=123

2)POST

通常会会用来提交HTML的表单

3)PUT

会向服务器写入资源

4)DELETE

请求服务器删除请求URL所指定的资源。但是,客户端应用程序无法保证删除操作一定会被执行。因为,HTTP规范允许服务器在不通知客户端的情况下撤销请求。DELETE方式和GET请求一样,参数都需要放在请求的URL中。

5)HEAD

与GET方法行为很类似,但服务器在响应中只返回首部,不会返回实体的主体部分。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查。

6)TRACE

TRACE请求会在目的服务端发起一个“环回”诊断。行程最后一站的服务器会弹回一条TRACE响应,并在响应主体中携带它收到的原始请求报文。这样客户端就可以查看在所有中间HTTP应用程序组成的请求/响应链上,原始报文是否以及如何被毁坏或修改过。

主要用于诊断,即用于验证请求是否如愿穿过了请求/响应链

7)OPTIONS请求

OPTIONS方法请求Web服务器告知其支持的各种功能。可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法(有些服务器可能只支持对一些特殊类型的对象使用特定的操作)

No3:

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。

HTTP响应也由3个部分组成,分别是:状态行、消息报头、响应正文。

No4:

常见状态代码、状态描述

1)200 OK:客户端请求成功

2)400 Bad Request:客户端请求有语法错误,不能被服务器所理解

3)401 Unauthorized:请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用

4)403 Forbidden:服务器收到请求,但是拒绝提供服务

5)404 Not Fount:请求资源不存在,举个例子:输入了错误的URL

6)500 Internal Server Error:服务器发生不可预期的错误

7)503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)

No5:

HTTP要传送一条报文时,会以流的形式将报文数据的内容通过一条打开的TCP连接按序传输。TCP收到数据流之后,会将数据流分割成被称作段的小数据块,并将段封装在IP分组中,通过因特网进行传输。所有这些工作都是由TCP/IP软件来处理的,程序员什么都看不到。

No6:

android中提供了两种执行网络请求的方式,一种是使用Apache的HttpClient,另一种则是Java的HttpURLConnection。

No7:

HttpURLConnection的API简单,体积较小,它的压缩和缓存机制可以有效的减少网络访问的流量,在提升速度和省电方面也起到了较大的作用。

在Android 6.0中,HttpClient库已经被移除。

No8:

一旦向输出流中写入了参数,那么请求方式则会变为POST,即使通过setRequestMethod函数将请求设置为“GET”。因为GET请求的参数是附在URL中的,因此,如果是GET请求,则不要在请求体中设置参数。

《android开发进阶从小工到专家》读书笔记--网络框架的设计与实现

原文地址:https://www.cnblogs.com/anni-qianqian/p/8425979.html

时间: 2024-08-28 17:45:29

《android开发进阶从小工到专家》读书笔记--HTTP网络请求的相关文章

Androidproject师进阶之路 :《Android开发进阶:从小工到专家》上市啦!

封面 文件夹1 文件夹2 - 当当购买链接 - 京东购买链接 为什么写这本书 写这本书的念头由来已久了. 或许是从我打算写<Android源代码设计模式解析与实战>那时起就萌生了这个念头,由于设计模式属于仅次于架构之下的局部战术.阅读这类书籍可以让具备一定工作经验的开发者提升自己的设计能力,构建更灵活的软件.可是.对于初.中级project师而言,最重要的还是在于基础知识以及知识广度的掌握上.因此,在<Android源代码设计模式解析与实战>交稿之后,我就马上開始了本书的写作之旅.

Android工程师进阶之路 :《Android开发进阶:从小工到专家》上市啦!

封面 目录1 目录2 - 当当购买链接 - 京东购买链接 为什么写这本书 写这本书的念头由来已久了.也许是从我打算写<Android源码设计模式解析与实战>那时起就萌生了这个念头,因为设计模式属于仅次于架构之下的局部战术,阅读这类书籍能够让具备一定工作经验的开发人员提升自己的设计能力,构建更灵活的软件.但是,对于初.中级工程师而言,最重要的还是在于基础知识以及知识广度的掌握上.因此,在<Android源码设计模式解析与实战>交稿之后,我就立即开始了本书的写作之旅. 从面试经历和与开

Android开发进阶:如何读写Android文件

Android主要有四大主要组件组成:Activity.ContentProvider.Service.Intent组成.Android文件的运行主要需要读写四大组件的文件.本文将介绍如何读写Android文件,希望对正在进行Android开发的朋友有所帮助. 文件存放位置 在Android中文件的I/O是存放在/data/data/<package name>/file/filename目录下. 提示:Android是基于linux系统的,在linux的文件系统中不存在类似于Windows的

Android开发进阶:Google依赖注入库Roboguice

Roboguice是一个用于Android应用的依赖注入框架,使用Google官方的Guice库位极大地简化了Android的依赖注入.让你的Android应用开发之路更加平坦顺利,编程更加简单有趣. 什么是依赖注入? 依赖注入是一种软件设计模式,无论是在运行时还是在编译时,允许删除.改变硬编码依赖性. 一些常用和普遍的依赖注入库有: Roboguice是一个用于Android应用的依赖注入框架,使用Google官方的Guice库位极大地简化了Android的依赖注入.让你的Android应用开

推荐扔物线的HenCoder Android 开发进阶系列 后期接着更新

官网地址:http://hencoder.com/ 我来做一次辛勤的搬运工 HenCoder:给高级 Android 工程师的进阶手册 HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解

【Android开发进阶】Android屏幕适配全攻略(最权威的官方适配指导)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获! Android屏幕适配出现的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi 解决方案 支持

从小工到专家阅读笔记02

活到老,学到老 知识上的投资总能得到最好的回报 ——题记 <程序员修炼之道 从小工到专家>中有句话是这样说的:“你的知识和经验是你最重要的职业财富.遗憾的是,它们是有时效的资产,随着新技术.语言及环境的出现,你的知识会变得过时.”IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识.随时补充和丰富自己,已成为程序员职业发展的核心竞争力. 众所周知,现在是一个知识爆炸的时代,知识更新非常快.据测算,一个大学毕业生所学到的知识,在毕业之后2年内,有效的不过剩下5%.对于软件

程序员从小工到专家阅读笔记之三

还没有把<程序员修炼之道:从小工到专家>这本书读完,把第四章的阅读笔记写一下. 本章由五节组成,分别是按合约设计.死程序不说谎.断言式编程.何时使用异常和怎样配平资源. 完美的软件不存在,目前也没有人写出完美的软件.与人打交道是最困难的,与人打交道的方法也可以应用于编程,确保坦率的最佳方案之一就是合约,按合约进行设计,客户和供应者按就责任与权力达成共识,双方履行义务,每个人都从中受益. 死程序不说谎主要讲了程序能按预期的运行,于是我们很容易掉进“某事不可能发生”的心理.但是存在很大的风险,不要

从小工到专家阅读笔记03

调试的痛苦 这是痛苦的事:看着你自己的烦忧,并且知道不是别人,而是你自己一人所致. ——题记 作为一名软件工程系的学生来说,我相信有很多同学和我有相同的感触:那就是编写的程序没有报错,但就是调试不出来.众所周知,调试 Bug是每个程序员工作中必须品,但是这个过程是极其痛苦的. 大家应该都有这样的经历吧:“ 终于编完了! 第一次运行, 出错了...... 为啥呢? 我知道哪出问题了. 在运行一次, 又出错了...... 这次又为啥呢? 这次肯定OK了. 再试一次, ......” 哈哈,看到这段经