HTTP1.1请求和响应的基本用法

HTTP1.1是现在普遍使用的TCP/IP的应用层协议,按照Volley中的描述,可以把HTTP传输数据相关对象分为两个类,一个叫Request(请求),一个是Response(响应)。

对于一个基本的Request,我们通过chrome自带的查看工具来查看一下:

在地址栏输入:chrome://net-internals/#events

我们打开百度,然后在上述页面中找到URL_REQUEST:

查看内容是:

看着上面那个两个请求内容,我们来分析一下一个HTTP请求的基本内容如何构造。

HTTP使用TCP/IP协议建立连接和发送数据,对于一个建立了连接的线路,一端称为服务端,另一端称为客户端,HTTP请求就是在客户端发送给服务端来请求数据的一组数据。

请求报文格式:

对于请求行,格式是这样的:

请求类型(Method)[空格]URL[空格]HTTP版本

例如,对于百度www.baidu.com

请求行:GET www.baidu.com HTTP/1.1

method比较常用的有GET/POST..

对于头部,一般使用键值对,常用的键值对可以分为通用头部,请求头部,相应头部,一般这些数据标记了一些与请求或是响应的数据相关的时间,格式等。这些东西我也没都记住,就不介绍了。

我们来分析刚才对百度的请求:

可以看到,所有前面有:的都是请求行的内容,其他的都是头部的内容。

然后我们来看看响应的结构:

状态行的结构:

  HTTP版本[空格]状态码[空格]状态短语

例如,对于一个成功的请求,返回的状态行是:

  HTTP/1.1 200 OK

这里所说的状态码我们最熟悉的就是一个404, NOT FOUND的标记。

下面要说一下主体,这个主体为什么说是大部分都有呢?因为这个位置的内容就是客户端请求的数据,服务端将请求的数据在这里发送回来,但是某些情况下,因为在HTTP协议中定义了一个有关cache的内容,我们可以吧请求和响应对应起来,发生请求的时候携带一个本地是否有之前响应的缓存,如果有就与服务端的参数对比,如果没有更改,那么服务端返回的状态码是304,此时就不再返回主体数据,只需要从缓存中取出Entry即可。还有某些情况下4xx,5xx这些错误信息也是不携带主体的。

下面分析一下刚才对于访问百度返回的响应:

可以看到第一行就是响应的状态行,其他的都是头部信息,其中data/expires这些可以用来进行cache对比来判断是否有更改/更新,而且我们要知道,有一种部分更改的响应,在协议说明中,这种响应是和本地缓存进行合并返回给请求的。

下面我们来简要分析一下Volley的Request的结构:

因为是前期做的,可能有很多错误,请见谅。

只有Request是不能反映Volley如何进行请求的,我们还要结合Network接口来实现:

对于响应:

详细内容自行看源码即可。

时间: 2024-10-19 16:24:37

HTTP1.1请求和响应的基本用法的相关文章

Web协议详解与抓包实战:HTTP1协议-请求与响应的上下文(7)

一.请求的上下文: User-Agent 指明客户端的类型信息,服务器可以据此对资源的表述做抉择 二.请求的上下文: Referer 浏览器对来自某一页面的请求自动添加的头部 截图2 这对于我们的防盗链非常有帮助: 1.比如我们的图片不希望被某些站点直接引用我们就可以直接禁止掉  服务器端常用于统计分析.缓存优化.防盗链等功能 三.请求的上下文: From 四.响应的上下文:Server   指明服务器上所用软件的信息,用于帮助客户端定位问题或者统计数据 五.响应的上下文: Allow 与 Ac

http请求与响应全过程

HTTP 无状态性 HTTP 协议是无状态的(stateless).也就是说,同一个客户端第二次访问同一个服务器上的页面时,服务器无法知道这个客户端曾经访问过,服务器也无法分辨不同的客户端.HTTP 的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求. HTTP 持久连接       HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销.因为同一个页面可能存在多个对象,所以非持久连接可

HTTP/NSURLConnection(请求、响应)、http响应状态码大全

一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻视频:优酷.百度视频.搜狐视频.爱奇艺视频音乐:QQ音乐.百度音乐.酷狗音乐.酷我音乐LBS:百度地

Postman工具——请求与响应

两个内容: Request 请求和 Response 响应,下面就开始了. 一.Request 请求 Request 请求,我们只介绍常用的四种:GET.POST.PUT.DELETE,其他类型的就不展开介绍了.另外,我们今天测试的项目是基于 RESTful API 规范的,现在已经成为主流了,有兴趣的同学可以研究下. 1.1 GET 请求 对于 GET 请求来说,我们一般是用来查询数据,返回一个数组或对象.RESTful API 的一个好处就是我们根据不同级别的访问路径,会自动判别返回的数据类

利用charles模拟Http请求和响应

最新项目组服务端的童鞋们太不给力了,接口一直没有出来,为了方便开发.服务器的童鞋们定义好了http接口以及返回的json结构.然后客户端就可以利用json结构,模拟数据,然后顺利开发,最后等服务器接口完成的时候,再次做一下联合调试. 这样的方法,有专业的名字mock. 下面介绍下怎样利用mock http响应. 比如有个http接口 http://xx.oo.com/api/helloworld 返回的json结构如下. { "hello": "world" } 我

【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析

[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP请求信息由3部分组成: 1.请求方法(GET/POST) URI 协议/版本 2.请求头(Request Header) 3.请求正文 下面我们来分析一个http请求: POST http://xg.mediportal.com.cn/health/sms/verify/telephone HTTP

HTTP请求和响应格式详细解析

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS

HTTP请求和响应4:首部(Header)

首部和方法配合工作,共同决定了客户端和服务器能做什么事情,可以将HTTP的首部分为以下几类: 1)通用首部: 2)请求首部: 3)响应首部: 4)实体首部: 5)扩展首部. 通用首部 通用首部提供了与报文相关的最基本的信息,可同时用于请求报文和响应报文.通用首部又分为信息性首部和缓存首部. 信息性首部 首部:Connection 描述:允许客户端和服务端指定与请求/响应连接有关的选项 首部:Date 描述:提供日期和时间标志,说明报文是什么时间创建的,并且列出了Date首部可接受的日期格式 首部

HTTP协议(5)HTTP请求和响应

之前曾介绍过,所有的HTTP通信都被构造成一对HTTP请求和HTTP响应,HTTP协议的请求与响应报文都是由"首部header"和"主体body"两部分组成的.其中主体部分是请求和响应的数据,首部部分则规定了请求和响应的内容格式. 对于HTTP请求报文,主要由三部分组成:请求行.请求头.请求正文.在请求头和请求正文之间一般会有两个空行进行间隔.下图是用Burpsuite截获的请求报文.HTTP请求报文的第一行即为请求行,这个报文的请求行就是"GET / H