惊天大爆料!!!前阿里巴巴年薪40w软件测试工程师的分享!!!(必看)

34 篇文章 0 订阅
30 篇文章 0 订阅

软件测试真的是让我又爱又恨的一个行业,入行8年余载,开心,迷茫,疲惫,愤怒经常伴随着自己。重大版本上线成功心情是喜悦;职业规划,未来的发展常常让我彷徨找不到方向,996的魔鬼加班体验让我想隐居山林,公司对测试地位的不重视常常也让我恨愤怒。这几年一直在学习前进,为了的就是让自己更有能力,让自己赚更多的钱。

软件测试,发展迅猛,对测试的工程师要求越来越高,准备进入这个行业的人,必须要做好持续学习的准备,不然你终究会被淘汰。
HTTP–Hyper Text Transfer Protocol,超文本传输协议,是一种建立在TCP上的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。

目录

HTTP请求

HTTP响应

HTTP报文格式

HTTP协议版本更替

网站访问量

一、HTTP请求

    HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求。

    HTTP请求由状态行、请求头、请求正文三部分组成:

状态行:包括请求方式Method、资源路径URL、协议版本Version;

请求头:包括一些访问的域名、用户代理、Cookie等信息;

请求正文:就是HTTP请求的数据。

    备注:请求方式Method一般有GET、POST、PUT、DELETE,含义分别是获取、修改、上传、删除,其中GET方式仅仅为获取服务器资源,方式较为简单,因此在请求方式为GET的HTTP请求数据中,请求正文部分可以省略,直接将想要获取的资源添加到URL中。下图所示就是GET的请求,没有请求正文。详细的说明在下边。

    现在大多数协议版本为http/1.1

在这里插入图片描述
下图所示为POST请求的格式,有状态行、请求头、请求正文三部分。
在这里插入图片描述
二、HTTP响应

2.1 响应数据格式

    服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端,称为HTTP响应。

    HTTP响应由三部分组成:状态行、响应头、响应正文;

状态行:包括协议版本Version、状态码Status Code、回应短语;

响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;

响应正文:就是响应的具体数据。

    备注:我们主要关心并且能够在客户端浏览器看得到的是三位数的状态码,不同的状态码代表不同的含义,其中

1xx 表示HTTP请求已经接受,继续处理请求
2xx 表示HTTP请求已经处理完成
3xx 表示把请求访问的URL重定向到其他目录
4xx 表示客户端出现错误
5xx 表示服务端出现错误

具体HTTP响应实例如下图:
在这里插入图片描述
2.2 常见状态码的含义

    200---OK/请求已经正常处理完毕

    301---/请求永久重定向

    302---/请求临时重定向

    304---/请求被重定向到客户端本地缓存

    400---/客户端请求存在语法错误

    401---/客户端请求没有经过授权

    403---/客户端的请求被服务器拒绝,一般为客户端没有访问权限

    404---/客户端请求的URL在服务端不存在

    500---/服务端永久错误

    503---/服务端发生临时错误

2.3 HTTP响应模型

    服务器收到HTTP请求之后,会有多种方法响应这个请求,下面是HTTP响应的四种模型:

    单进程I/O模型

服务端开启一个进程,一个进程仅能处理一个请求,并且对请求顺序处理;

    多进程I/O模型

服务端并行开启多个进程,同样的一个进程只能处理一个请求,这样服务端就可以同时处理多个请求;

    复用I/O模型

服务端开启一个进程,但是呢,同时开启多个线程,一个线程响应一个请求,同样可以达到同时处理多个请求,线程间并发执行;

    复用多线程I/O模型

服务端并行开启多个进程,同时每个进程开启多个线程,这样服务端可以同时处理进程数M*每个进程的线程数N个请求。

三、HTTP报文格式

    HTTP报文是HTTP应用程序之间传输的数据块,HTTP报文分为HTTP请求报文和HTTP响应报文,但是无论哪种报文,他的整体格式是类似的,大致都是由起始、首部、主体三部分组成,起始说明报文的动作,首部说明报文的属性,主体则是报文的数据。接下来具体说明。

3.1 HTTP请求报文

在这里插入图片描述
请求报文的起始由请求行构成(有些资料称为状态行,名字不一样而已,都是指的一个东西),用来说明该请求想要做什么,由、、 三个字段组成,注意每个字段之间都有一个空格。

    其中<Method>字段有不同的值:

            GET   --- 访问服务器的资源

            POST  --- 向服务器发送要修改的数据

            HEAD  --- 获取服务器文档的首部

            PUT   --- 向服务器上传资源

            DELETE--- 删除服务器的资源

    <URL>字段表示服务器的资源目录定位

    <Version>字段表示使用的http协议版本

    首部部分由多个请求头(也叫首部行)构成,那些首部字段名有如下,不全:

            Accept     指定客户端能够接收的内容格式类型

            Accept-Language 指定客户端能够接受的语言类型

            Accept-Ecoding  指定客户端能够接受的编码类型

            User-Agent      用户代理,向服务器说明自己的操作系统、浏览器等信息

            Connection      是否开启持久连接(keepalive)

            Host            服务器域名

            ...

    主体部分就是报文的具体数据。                      

3.2 HTTP响应报文
在这里插入图片描述
响应报文的起始由状态行构成,用来说明服务器做了什么,由、、三个字段组成,同样的每个字段之间留有空格;

    <Status-Code> 上边已经说明; 

    首部由多个响应头(也叫首部行)组成, 首部字段名如下,不全:

            Server    服务器软件名,Apache/Nginx

            Date      服务器发出响应报文的时间

            Last-Modified   请求资源的最后的修改时间

            ...

    主体部分是响应报文的具体数据。

小tips:关于更多请求头和响应头(即首部字段名)的说明请参考http://tools.jb51.net/table/http_header

四、HTTP协议版本更替

HTTP/0.9

    HTTP协议的最初版本,功能简陋,仅支持请求方式GET,并且仅能请求访问HTML格式的资源。

HTTP/1.0

    在0.9版本上做了进步,增加了请求方式POST和HEAD;不再局限于0.9版本的HTML格式,根据Content-Type可以支持多种数据格式,即MIME多用途互联网邮件扩展,例如text/html、image/jpeg等;同时也开始支持cache,就是当客户端在规定时间内访问统一网站,直接访问cache即可。

    但是1.0版本的工作方式是每次TCP连接只能发送一个请求,当服务器响应后就会关闭这次连接,下一个请求需要再次建立TCP连接,就是不支持keepalive。

HTTP/1.1

    解决了1.0版本的keepalive问题,1.1版本加入了持久连接,一个TCP连接可以允许多个HTTP请求; 加入了管道机制,一个TCP连接同时允许多个请求同时发送,增加了并发性;新增了请求方式PUT、PATCH、DELETE等。

    但是还存在一些问题,服务端是按队列顺序处理请求的,假如一个请求处理时间很长,则会导致后边的请求无法处理,这样就造成了队头阻塞的问题;同时HTTP是无状态的连接,因此每次请求都需要添加重复的字段,降低了带宽的利用率。

HTTP/2.0

    为了解决1.1版本利用率不高的问题,提出了HTTP/2.0版本。增加双工模式,即不仅客户端能够同时发送多个请求,服务端也能同时处理多个请求,解决了队头堵塞的问题;HTTP请求和响应中,状态行和请求/响应头都是些信息字段,并没有真正的数据,因此在2.0版本中将所有的信息字段建立一张表,为表中的每个字段建立索引,客户端和服务端共同使用这个表,他们之间就以索引号来表示信息字段,这样就避免了1.0旧版本的重复繁琐的字段,并以压缩的方式传输,提高利用率。

    另外也增加服务器推送的功能,即不经请求服务端主动向客户端发送数据。

当前主流的协议版本还是HTTP/1.1版本。

五、网站访问量

    IP IP访问量

相同的公网IP计算一次,就是同一个局域网内的所有用户访问一个网站,但是他们都是借助一个公网IP去访问那个网站的(NAT),因此这也只能算作一个IP访问量。换一次公网IP则会加1。

    PV 网页访问量

用户访问的页面数就是PV访问量,同一个局域网的不同用户,而且就算是同一个用户,只要刷新一次网站页面,PV访问量就加1,三个访问量的值往往数PV的值最大。

    UV 访客访问量

这里的访客不是用户,而是电脑,一台电脑算一个访客,即使是同一台电脑的不同用户,访问同一个网站UV也只能加1,只有更换电脑才会使UV加1,因为服务端会记录客户端电脑的信息。

看完这篇内容后,相信以下两件事,也会对你的个人提升有所帮助:

1、 点赞,让更多人能看到这篇文章,同时你的认可也会鼓励我创作更多优质内容。

2、 让自己变得更强:想一想,如果你想在测试这个行业一直做下去,你的经验和测试技术是远远不够的,你需要进阶,你需要丰富你的技术栈!还等什么!

最后:【可能给予你助力的教程】
在这里插入图片描述
在这里插入图片描述
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

我的学习交流群:

1125939340

群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果想在静态页面中使用Vue组件,需要先将组件打包成一个JavaScript文件,然后在静态页面中引入这个JavaScript文件,最后在Vue实例中注册组件即可。 下面是一个使用Vue组件的静态页面示例: 1. 在Vue组件中定义一个组件: ```js // MyComponent.vue <template> <div> <h1>{{ title }}</h1> <p>{{ content }}</p> </div> </template> <script> export default { props: { title: String, content: String } } </script> ``` 在上面的代码中,我们定义了一个名为`MyComponent`的Vue组件,组件中包含一个标题和内容。同时,我们通过`props`选项定义了`title`和`content`两个属性,这样在使用该组件时,可以通过这两个属性向组件传递数据。 2. 使用Vue-CLI将组件打包成JavaScript文件: 在命令行中执行以下命令,将Vue组件打包成JavaScript文件: ```bash vue-cli-service build --target lib --name my-component ./src/components/MyComponent.vue ``` 执行上述命令后,会在项目根目录下生成一个名为`my-component.umd.js`的JavaScript文件,这个文件包含了我们定义的`MyComponent`组件。 3. 在静态页面中引入JavaScript文件: 在静态页面中,我们可以使用`<script>`标签引入上一步生成的JavaScript文件: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue Component Static Page</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="./my-component.umd.js"></script> </head> <body> <div id="app"> <my-component title="Hello" content="World"></my-component> </div> <script> const app = new Vue({ el: '#app', components: { 'my-component': window['my-component'] } }) </script> </body> </html> ``` 在上面的代码中,我们首先引入了Vue.js和`my-component.umd.js`两个JavaScript文件。然后,我们在Vue实例中注册了`MyComponent`组件,这样就可以在静态页面中使用`<my-component>`标签,并通过`title`和`content`属性向组件传递数据了。 需要注意的是,如果打包成的JavaScript文件是ES Module格式,可能需要额外的配置才能在静态页面中正常使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值