网络我爱编程

Android 网络(一) HTTP协议

2018-04-03  本文已影响0人  whd_Alive

前言

现如今,网络无处不在。对于Android开发者而言,免不了涉及到对网络的访问。于是挖个坑= = ,介绍一下Android下关于网络编程的方方面面,本文将讲述HTTP协议的一些必备知识。

接下来我将持续推出Android网络相关的一系列文章,包括HttpURLConnection、Volley、OkHttp3、Retrofit2的使用及源码分析等,有兴趣可以关注whd_Alive的Android开发笔记

相关文章
Android 网络(二) HttpURLConnection用法解析
Android 网络(三) Volley使用解析
Android 网络(四) Volley源码解析
Android 网络(五) OkHttp用法解析
Android 网络(六) OkHttp源码解析
Android 网络(七) Retrofit用法解析
Android 网络(八) Retrofit源码解析

HTTP协议简介

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。它是一个属于应用层的面向对象的协议,所有的WWW文件都必须遵守这个标准。

协议特点

格式

HTTP报文

HTTP报文分为请求报文响应报文两种基本分类。一般来说,一个响应对应一个请求。

HTTP请求报文

首先,放上上课时PPT中的截图(我还只是个学生,笑)


HTTP请求

请求行

由上图,显而易见:

请求行 = 请求方法 + 空格 + URL + 空格 + HTTP协议版本
示例 :GET /somedir/page.html HTTP/1.1

其中URL就是一个统一资源标识符,HTTP协议版本就是字面上的意思,表明请求的HTTP协议版本。

HTTP请求方法有8种,说明如下:


Method
请求方法 说明
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

对于Android开发而言,我们最关注的其实也就只有POSTGET

GET与POST对比

我就不再个人赘述了,直接放上一篇比较系统的分析文章

HTTP协议中GET和POST方法的区别

请求报头

请求报头和方法配合工作,决定客户端能做什么事情,详见消息报头

请求数据

HTTP响应报文

image.png

状态行

每条响应报文都会包含一个3位数字和可读的状态,用来告诉客户端,服务器发生了什么事情。数字状态码便于程序处理差错,原因短语更便于人们理解。状态码分为5类:

常见的状态码如下,详情参见HTTP状态码维基百科

响应报头

见下文HTTP消息报头

响应正文

好像没什么好说的= =!

HTTP消息报头

消息报头和方法配合工作,共同决定了客户端和服务器能做什么事情。可以将/消息报头分为通用报头、请求报头、响应报头、实体报头等,以下将分类详细说明。

通用报头

客户端和服务器都可以使用,提供与报文下相关的最基本的信息。

请求报头

只在请求报文中有意义,用于说明是谁或什么在发送请求、请求源自何处,或客户端的喜好及能力等。

响应报头

为客户端提供了一些额外信息,比如谁在发送响应、响应者的功能、其它一些特殊指令等

实体报头

用来描述HTTP报文的负荷,提供了有关实体及其内容的大量信息,可以告知报文的接收者它在对什么进行处理


总结


欢迎关注whd_Alive的简书

上一篇下一篇

猜你喜欢

热点阅读