3.Android网络编程-http介绍
1.HTTP请求方法
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET(查), POST(改)和 HEAD(获取报头,一般用来测试链接是否正常)方法。
HTTP1.1新增了五种请求方法:Put(增),Delete(删), OPTIONS(查看服务器性能), TRACE(追溯服务器之前接收的请求,用来找问题) 等方法。
|
序号 |
方法 |
描述 |
|
1 |
GET |
请求指定的页面信息,并返回实体主体。 |
|
2 |
HEAD |
类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
|
3 |
POST |
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
|
4 |
PUT |
从客户端向服务器传送的数据取代指定的文档的内容。 |
|
5 |
DELETE |
请求服务器删除指定的页面。 |
|
6 |
CONNECT |
HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
|
7 |
OPTIONS |
允许客户端查看服务器的性能。 |
|
8 |
TRACE |
回显服务器收到的请求,主要用于测试或诊断。 |
|
9 |
PATCH |
是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
并且HTTP1.0规定浏览器与服务器只保持短暂的连接,每次请求后就会断开连接,一个包含有许多图像的网页文件的多个请求和应答则需要多次连接传输才能完成.
而HTTP1.1支持持久连接, 减少了建立和关闭连接的消耗和延迟, 一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输.
2.get和post
- get : get提交的时候会将所有参数都拼在在url后面来访问.并且只接受1k以内的内容,每个参数以&隔开,由于参数内容是显示的,所以只能适用于非隐私访问.
- post : post请求的时候则是将所有参数内容以key=value形式放到请求体中,并且长度不受限制.
3.request请求
客户端请求包含了4个部分:
- 请求行(request line)
- 请求头(header)
- 空行、
- 请求体
以get为例:

- Host: 告诉服务器,客户端的地址
- User-Agent: 客户端类型,这里表示用的是windows电脑,用的是QQBrowser浏览器(如果是手机的话,则会显示手机具体类型)
- Accept: 告诉服务器,可以支持处理的数据类型
- Accept-Lanauage: 告诉服务器,可以支持的语言
- Accept-Encoding: 告诉服务器,可以支持解压哪些格式的数据
- Referer: 告诉服务器该网页是从哪个页面链接过来的
- Connection : 连接的状态,这里表示保持连接
而以post的话:

请求头中多了两个:
- Content-Type: application/x-www-form-urlencoded : 请求体的url编码
- Content-Length: 41 : 提交的请求体的长度
请求体刚好是41字节:
yuwen1=12&shuxue1=23&yuwen2=34&shuxue2=55
4.response 响应
客户端请求包含了4个部分:
- 响应行(包含响应码)、
- 响应头、
- 空行、
- 响应体
常见的响应码有:
- 200~299 : 请求成功,服务器成功返回数据,比如200(get/post请求成功)
- 300~399 : 服务端收到了请求 但是需要客户端作进一步操作,比如304(告诉客户端使用缓存)
- 400~499 : 请求错误(客户端问题),比如404(资源不存在)
- 500~599 :内部服务器错误,比如500(服务器内部错误)
示例如下:

- Server : 描述服务器端类型
- Accept-Ranges : 表示当前返回的数据单位
- Last-Modified : 表示请求的资源的最后被修改的时间,这个字段的作用就是用于缓存服务器机制,用于判断缓存服务器中的资源是否过期,是否需要从源服务器更新。
- ETag : 表示请求资源的版本,如果该资源发生变化,那么这个属性也会跟着变,和Last-Modified一样,可以用来判断缓存中的资源是否过期
- Content-Type : 响应的类型
- Content-Length : 响应体的数据长度
- Date : 数据响应的时间
未完待续,下章学习servlet~
3.Android网络编程-http介绍的更多相关文章
- 1.Android网络编程-HTML介绍
1.HTML介绍 超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. 在Eclipse下则可以使用自带的浏览器浏览html: 2.H ...
- 2.Android网络编程-web介绍以及Tomcat安装使用
1.CS和BS CS:Client/Server 客户端和服务器,这种软件往往需要安装.比如QQ.迅雷.播放器. 优点 : 可以减轻服务器端压力,将部分代码写到客户端,并且界面很美观. 缺点 : ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- Android网络编程系列 一 Socket抽象层
在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...
- 转 Android网络编程之使用HttpClient批量上传文件 MultipartEntityBuilder
请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 http://www.tuicool.com/articles/Y7reYb 我曾在<Andr ...
- Android网络编程(一)HTTP协议原理
相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...
- Android 网络编程 记录
简单介绍 看了深入理解Android网络编程感觉不错.今天对Android网络编程进行了要点记录. 内容 Android基于网络技术和编程实践 要点 定义 描写叙述 IP协议 用于报文交换网络的一种面 ...
- Android网络编程(三)Volley使用方法全解析
相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection 前言 Volley想必许多人都用过,为了建立网络编程的知识 ...
- Android网络编程(十)Retrofit2后篇[注解]
G相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley用法全解析 An ...
随机推荐
- URL 去重的 6 种方案!(附详细实现代码)
URL 去重在我们日常工作中和面试中很常遇到,比如这些: 可以看出,包括阿里,网易云.优酷.作业帮等知名互联网公司都出现过类似的面试题,而且和 URL 去重比较类似的,如 IP 黑/白名单判断等也经常 ...
- 电子邮箱有哪些隐藏技能,读懂了效率提升N倍!
很多人将邮箱作为常见的通讯工具,然而,大部分职场人只了解其五分之一的功能.电子邮箱还有很多隐藏技能,身为商务精英的你,必须往下看看哦!今天跟随TOM邮箱小编导,来挖掘下邮箱的潜藏技能吧~ 作为经常外出 ...
- Shader 001 - 函数造型能力
0x00 从函数出发 Shader 中的很多效果都是由函数计算得出的,如何更好地理解二者的关系呢.不妨先看看函数是什么?函数的定义可以简单地描述为:给定一个集合 A,对于其中的元素施加法则 f,则可以 ...
- JWT伪造攻击
JWT修改伪造攻击 什么是JWT? JSON Web Token(JSON Web令牌)是一种跨域验证身份的方案.JWT不加密传输的数据,但能够通过数字签名来验证数据未被篡改(但是做完下面的WebGo ...
- k8s报错解决思路
问题1 1.报错信息如下 [root@ken1 ~]# kubectl get po The connection to the server 192.168.64.11:6443 was refus ...
- 项目初始化CSS公共样式
/*! normalize.css v6.0.0 | MIT License | github.com/necolas/normalize.css */ /* Document =========== ...
- LR Robust Stereo VIO for Fast Autonomous Flight
Abstract 我们展示说我们的Stereo MSCKF在算力上跟state-of-the-art的单目方案是可比的, 而且提供了很大的鲁棒性. 1. Introduction 贡献 第一个开源的f ...
- Unity 如何在窗口大小可以随意改变的情况下让游戏世界完整的显示在镜头中
当我们开发游戏时,如果是开发手机游戏,屏幕窗口的比例是固定的,不会说在运行时改变的. 但是,PC端的游戏就不一定,我希望它能被用户随意拉扯,但完整的内容还是能显示出来,这里我直接放例子: 请注意黑色的 ...
- 快速了解前端开发HTML的正确姿势
摘要:web前端开发(也称为客户端开发)主要是通过html,CSS和JavaScript等前端技术,实现网站在客服端的正确显示及交互功能. 一.web标准介绍 web标准: w3c:万维网联盟组织,用 ...
- 项目系统Netty的Channel和用户之间的关系绑定正确做法,以及Channel通道的安全性方案
前言 考虑一个功能业务,在web程序中向指定的某个用户进行实时通讯 在Web运用的Socket通讯功能中(如在线客服),为保证点对点通讯.而这个看似简单的根据用户寻到起channel通道实际会碰到不少 ...