日常工作中,软件测试人员经常会接触到传输层(TCP、UDP)和应用层(HTTP、HTTPS等)的内容。比如,像我们web页面时,就会用到一些协议的知识。为了让大家对这些协议有清楚的认知,我打算分几篇来给大家做一个介绍,希望大家可以从这当中,学会一些知识,掌握几个小的要点,便于今后工作能够顺利开展。
本文主要以HTTP/HTTPS协议为主,来给大家做详细的介绍。
1、HTTP协议概述
HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接 的应用层协议。 由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。
2、HTTP协议之请求报文
HTTP请求的报文分为四部分:请求行、请求头、空一行、请求体,其中前三个是所有HTTP请求都有的部分,请求体不是所有的HTTP请求都有(例如GET请求没有请求体)。下图为一个HTTP请求的报文信息:
请求行:请求行由 请求方法、统一资源定位符(URL)、HTTP协议及版本。
请求方法:HTTP请求中,有八种请求方式,分别为GET、POST 、HEAD、OPTIONS、PUT、DELETE、TRACE 、CONNECT 。其中最后常用的就是GET、POST请求方法。
统一资源定位符(URL):统一资源定位符用于描述网上的资源,格式如下:协议://host[:port#]/path/../[?query-string]。
HTTP协议及版本:通常为HTTP/1.1。
3、HTTP协议之响应报文
HTTP响应的报文分为四部分:状态行、响应头、空一行、响应体,其中前三个是所有HTTP响应都有的部分,响应体不是所有的HTTP响应都有。下图为一个HTTP响应的报文信息:
状态行:状态行由 协议及版本、状态码、状态码解释。
l 协议及版本:通常为HTTP/1.1。
l 状态码:常用状态码根据数字大小可以分为以下几大类。常用的响应状态码为:200:请求成功、302:重定向、403:服务器拒绝请求、404:服务器找不到请求的网页、503:服务不可用。
l 响应状态码范围 含义
4、HTTP协议 无状态、无连接特点及解决方案
在最前面介绍HTTP协议的时候,说到HTTP协议是一个无状态、无连接的协议。那么何为无状态、无连接,以及该特点的优势及所带来的问题。
l 无状态:
1)含义:
(1)对事务处理没有记忆能力,服务器不知道客户端是什么状态,给服务器发送HTTP请求之后,服务器回应之后,不会有任何记录;
(2)每个请求都是独立的;
2)优点:释放服务器压力。
3)缺点:服务器处理后续请求,需要重传。例如登录系统后,如果不记录登录的相关信息,后续进行添加购物车操作的时候,需要登录的相关信息。
4)解决方案:
(1)Cookie:将前面的请求信息保存在一个临时位置。cookies值存在浏览器里,关闭浏览器后被删除,也可以手动去删除。
(2)Session:可以理解为永久的cookie值,保存在服务器上,并传递给客户端,并保存在内存中。问题:资源占用,session超时时间,清除session ID。
l 无连接:
1)含义:
(1)限制每次连接只处理一个请求;
(2)服务器处理客户端的请求、并接受客户端的应答后,即断开连接;
2)初衷:用户量(十万、上百万)页面请求、单个用户间歇性大(很长时间上没有交互),有突发性、瞬时性。数据没有关联,导致资源浪费,从而服务器压力很大。
3)设计:从而设计为处理完请求后,释放连接。
4)问题:网页越来越复杂了,页面中有很多图片,如果每次都要建立一次TCP连接,效率就会很低。
5)解决方案:connection响应头字段值 Keep-Alive 表示保持tcp连接不关闭,不会永久保持连接,服务器可设置
5、HTTPS协议详解
HTTP协议存在的问题:发送的数据都是明文的,存在第三方窃听,截取数据包、伪装客户端的情况,存在安全隐患。
HTTPS协议:超文本传输安全协议,是以网络安全为目标的HTTP通道,简单来讲就是HTTP的安全版。它加密数据并确保其机密性,可保护用户在网站交互时免于窃取个人信息及计费数据。可以理解为:
(1)HTTPS=HTTP+SSL
(2)HTTPS=HTTP+加密+身份认证+完整性。(其中加密:密钥;身份认证: 证书(申请)双向认证; 完整性保护:哈希算法 计算一个hash值,验证消息的完整性 摘要=摘要 保证数据没有被篡改)
l HTTPS=HTTP+SSL
l HTTPS之SSL连接详解
6、HTTP协议与HTTPS协议对比
7、常见面试题
在面试过程中,关于HTTP协议常见的问题有:
(1)HTTP请求响应报文
(2)HTTP与HTTPS的区别
(3)TCP三次握手与四次挥手
(4)HTTP常见状态码
(5)HTTP八种请求方式
(6)简述OSI七层网络模型
(7)HTTP无状态、无连接特点及解决方案
(8)cookie和session的区别。
上述的这些问题再前面都已经写到了,大家可以看看我们前面写的内容,好好背一背,面试的时候遇到也就不难了~
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理
联系客服