一、背景
HTTP协议不管何时我们都在使用,不管是开发人员还是测试人员都是必须知道,也是测试人员在面试时问到的概率比较大,那么http是个什么呢?那我们就往下一起来看看吧。
二、HTTP介绍
1、HTTP全程是hypertext transfer protocol
(超文本传输协议)的简写,是tcp/ip协议的一个应用层协议,用于定义web游览器和web服务器之间交换数据的过程,由请求和响应构成,是一个标准的客户端服务服务器模型,一个无状态的协议
2、HTTP版本:HTTP/1.0和HTTP/1.1 HTTP/1.0:每次连接取一个资源 HTTP/1.1:每次连接可获取多个资源
三、HTTP请求方式
这里只讲述get和post两种 两者区别:
参数所放的位置不同:get放在URL后面,POST放在请求的实体内容里
参数大小不同:get长度有限制(游览器有URL长度限制),post无限制
安全性:get参数是暴露在URL里,而post是在body里,相对而言post安全性会更高
四、工作方式
三次握手:请求-确认请求-发送收到请求
四次挥手:
1.客户端发送数据完毕后提出断开连接
2.服务器收到FIN包后对其做出反应发出ACK包,确认这一方向的连接关闭
3.等服务器应用程序做好关闭准备时服务器反向发送FIN包,请求关闭连接请求
4.客户端对服务器发送的请求进行确认,并发送ACK包
五、TCP与UDP区别
1.基于连接与无连接:tcp面向连接协议,在收发数据前必须与对方建立可靠的连接,udp不需要
2.对系统资源要求:tcp较多,udp较少
3.udp传输快,效率高,tcp传输慢,效率低
4.tcp保证数据正确性,udp可能会丢包tcp保证数据顺序, udp不保证
六、状态码
100-199 成功接收请求,需客户继续提交下一次请求才能完成整个处理过程
200-299 接收成功并已完成整个处理过程,常用 200
300-399 为完成请求客户需进一步细化请求,如请求资源已移动一个新地址,常用302 307 304
400-499 客户端请求有错误,常用404
500-599 服务端出错,常用500