http接口测试和使用,首先要了解什么是http请求: 
http请求通俗讲就是把客户端的东西通过http协议发送到服务端,服务端根据http协议的定义解析客户端发过 
来的东西! 
http请求中常用到的是get和post请求参数,get参数是拼接在url得后边,以"?"连接域名和参数,形成get请求, 
例如:http://baidu.com?a=b&c=d,问号后边的就是get请求参数,post请求不会在url中看到,会放到http 
请求的body中,各大语言都会封装出函数,在body中解析出post请求参数。那post参数是什么样子呢?它可以是 
任何形式,常见的key=value的形式,和get请求格式一样"a=b&c=d" 这种,另外json,xml格式也是常见的。这
些格式在传递的时候,会受到Content-Type影响,不同的Content-Type传递格式不一样,服务端就会根据 
Content-Type进行相应格式的解析。客户端和服务端就是通过这些协议来分辨传递的是什么格式的。一定要了解下 
常见的Content-Type,更多的请见上边Content-Type链接说明。 
Content-Type:application/x-www-form-urlencoded,类似form表单和get,post请求都是这个, 
格式如 "a=b&c=d",服务端会自动解析 
Content-Type:application/json 如果要发送json格式,request header中就需要加入这个Content-Type 
类型,这种形式的服务端的接受不太一样,一般不会解析到post请求中,一般需要读取body流的方式获取。 
上边是常见的两种传输格式,我们自己写代码的时候有时候不用写,那是因为类库中,有的已经自动给加入啦,所以 
不需要自己加,Content-Type很重要,他影响你传递的格式。 
http 请求中还要注意的就是header,分为request header 和response header,request header 
是客户端请求的时候发送的,告诉服务器你客户端的情况,需要服务端怎么返回给你,例如,是否压缩 
(Accept-Encoding:gzip, deflate, sdch)这个就是告诉服务端,我支持这些种压缩,你返回的时 
候,你可以选择一种对数据压缩,我可以解开。还有是否缓存,接受的语言,User-Agent,referer等, 
cookie也是放到request header中传递到服务端的,从而实现登录。所以request header 是告诉 
服务端你有什么或者参数传递的,上边这些都是http协议定义好的,大家都按这个规则解析就好,另外 
header都是可以自定义的,你可以加入任何变量到里边。所以header中信息是可以任意修改,发送到 
服务端的。 
response header 相对request header,就是服务端给客户端的信息,有些是服务端根据客户端 
的需求给的响应,有的服务端告诉客户端的一些其他信息,例如,请求协议,请求状态码,是否缓存, 
设置cookie也是有response header中返回,浏览器接收到就会设置到浏览器中。 
白话这么多,有什么错误或者问题,可以进群讨论。学习无止境。http不神奇。多利用浏览器的f12, 
看看network,久而久之,会有意想不到的效果啊!!!

引自: coolaf.com

白话http请求的更多相关文章

  1. 第三篇:白话tornado源码之请求来了

    上一篇<白话tornado源码之待请求阶段>中介绍了tornado框架在客户端请求之前所做的准备(下图1.2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未 ...

  2. 第二篇:白话tornado源码之待请求阶段

    上篇<白话tornado源码之一个脚本引发的血案>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是torna ...

  3. 第五篇:白话tornado源码之褪去模板的外衣

    上一篇<白话tornado源码之请求来了>介绍了客户端请求在tornado框架中的生命周期,其本质就是利用epoll和socket来获取并处理请求.在上一篇的内容中,我们只是给客户端返回了 ...

  4. 第一篇:白话tornado源码之一个脚本引发的血案

    本系列博文计划: 1.剖析基于Python的Web框架Tornado的源码 2.为Python开发一个完善的MVC框架 首先将带着大家一起来剖析基于python编写的Web框架 tornado ,本着 ...

  5. 白话学习MVC(八)Action的执行二

    一.概述 上篇博文<白话学习MVC(七)Action的执行一>介绍了ASP.NET MVC中Action的执行的简要流程,并且对TempData的运行机制进行了详细的分析,本篇来分析上一篇 ...

  6. 白话学习MVC(十)View的呈现二

    本节将接着<白话学习MVC(九)View的呈现一>来继续对ViewResult的详细执行过程进行分析! 9.ViewResult ViewResult将视图页的内容响应给客户端! 由于Vi ...

  7. 白话学习MVC(九)View的呈现一

    一.概述 本节来看一下ASP.NET MVC[View的呈现]的内容,View的呈现是在Action执行之后进行,Action的执行生成一个ActionResult,[View的呈现]的功能就是:通过 ...

  8. 白话学习MVC(七)Action的执行一

    一.概述 在此系列开篇的时候介绍了MVC的生命周期 , 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理.对于MVC来说,请求是先 ...

  9. 浏览器-Tomcat服务器-请求与响应

    浏览器访问服务器,本质就是请求资源. 比如请求静态资源:index.html,我们在浏览器地址栏输入:www.a.com/index.html,浏览器为了支持HTTP协议,发送的数据必须符合HTTP协 ...

随机推荐

  1. [python][django学习篇][5]选择数据库版本(默认SQLite3) 与操作数据库

    推荐学习博客:http://zmrenwu.com/post/6/ 选择数据库版本(SQLite3) 如果想选择MySQL等版本数据库,请先安装MySQL并且安装python mysql驱动,这里不做 ...

  2. JavaScript: __proto__和prototype

    图来源于:http://www.cnblogs.com/smoothLily/p/4745856.html 个人的理解: 1. 所有对象都有 __proto__属性,返回该对象的原型对象.例如f1由语 ...

  3. (转载) Linux五种IO模型

    转载:http://blog.csdn.net/jay900323/article/details/18141217     Linux五种IO模型及分析   目录(?)[-] 概念理解 Linux下 ...

  4. 平时代码中不符合python风格的举例

    良好的代码风格体现出自己的专业,良好的代码风格,方便同事之间协作. 下面举例讲讲自己在代码中不符合python风格的一些情况,方便自己写出优雅的代码. 段落之间空两行 很长的参数用括号连接但是不要超过 ...

  5. 【转】Apache Thrift - 可伸缩的跨语言服务开发框架

    Apache Thrift - 可伸缩的跨语言服务开发框架 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.本文将从 Java 开发人员角度详 ...

  6. PDF文件加密怎么转换成word

    1.将文档拖入Chrome浏览器 2. 3.右上角打印,然后会提示 另存为本地,然后再用word或者福昕套件转换就行

  7. 理解点击屏幕的事件响应--->对- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event方法的理解

    要理解这两个方法.先了解一下用户触摸屏幕后的事件传递过程. 当用户点击屏幕后,UIApplication 先响应事件,然后传递给UIWindow.如果window可以响应.就开始遍历window的su ...

  8. POJ 1941 The Sierpinski Fractal ——模拟

    只需要开一个数组,记录一下这个图形. 通过一番计算,发现最大的面积大约是2k*2k的 然后递归下去染三角形. 需要计算出左上角的坐标. 然后输出的时候需要记录一下每一行最远延伸的地方,防止行末空格过多 ...

  9. bzoj 4131: 并行博弈 (parallel)

    bzoj 4131: 并行博弈 (parallel) Description lyp和ld在一个n*m的棋盘上玩翻转棋,游戏棋盘坐标假设为(x, y),1 ≤ x ≤ n,1 ≤ y ≤ m,这个游戏 ...

  10. mongodb使用1

    首先官网下载mongodb放在根目录下.新建db文件夹,在命令行中进入bin路径,然后运行mongod开启命令,同时用--dbpath指定数据存放地点为“db”文件夹 mongod --dbpath= ...