• 0
  • 1
分享

HTTP, HTTPS协议

  • 什么是DNS

DNS是域名系统(Domain Name System),DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。

  • HTTP协议

HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接 的应用层协议。 由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。

  • 怎么抓取HTTPS协议

使用fiddler工具抓取HTTPS。

  • 说出请求接口中常见的返回状态码

1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)

2xx -- 成功(表明服务器成功地接受了客户端请求)

3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)

4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)

5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的返回码有:

200 OK - [GET]:服务器成功返回用户请求的数据

201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功

202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT - [DELETE]:用户删除数据成功

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作

401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)

403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止

404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

  • HTTP协议请求方式

HTTP协议常用的请求方式有如下几种:

2.jpg

  • HTTP和HTTPS协议区别

安全性 安全性低——明文传输、易受攻击,无法确认双方身份,也无法确保数据的完整性 
安全性高——使用ssl加密传输协议,信息是密文,可以认证双方的身份,防止信息被截取篡改默认TCP端口 80端口 443端口灵活度或技术门槛 简单快速,使用很灵活 
技术门槛:多数个人或私人网站难以支撑速度 协议简单,HTTP服务器的程序规模小,因而通信速度很快 加重服务端的负担,需要资源来支撑,降低用户的访问速度费用 没有额外的费用 CA机构颁发的证书都是需要年费的
  • HTTP和HTTPS实现机有什么不同

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

  • POST和GET的区别

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

  1. 传送方式:get通过地址栏传输,post通过报文传输;

  2. 传送长度:get参数有长度限制(受限于url长度),而post无限制;

  3. GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据);

  4. get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留;

  5. 在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式。

  • HTTP请求报文与响应报文格式

请求报文:一个HTTP请求报文由请求行(Request Line)、请求头(Header)、空行(Blank Line)和请求体(Body)4个部分组成。

响应报文:HTTP响应报文和请求报文的结构差不多,由状态行、响应头、空行、响应体4个部分组成。

3.jpg

  • 什么是HTTP协议无状态协议?怎么解决HTTP协议无状态协议

是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

解决方案:通过cookie和session来保持状态。

  • 常见的POST提交数据方式

请求body;请求url+请求body:

Content-type:

application/x-www-form-urlencoded: 表单提交--键值对, form

multipart/form-data:文件上传---文件 ,MIME

application/json,text/xml:

  • HTTP协议学了哪几个版本

http协议目前有4个版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。

  • Cookies和Session区别

  1. 存储位置不同:Cookie 是将用户数据通过加密的方式保存在客户端,大多数情况 Cookie 存储在浏览器;Session 是用于控制客户端和服务端的连接,Session 存储在服务器;

  2. 存储容量不同:单个 Cookie 保存的数据不得超过 4kb,一个站点最多 20 个 Cookie,Session 一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

  3. 存取方式不同:Cookie 只能用 ASCII 字符串,通过编码方式获取 Unicode 字符或者二进制数据,不好存储复杂的信息,而 Session 能存储任何类型的数据;

  4. 隐私策略/安全性不同:Cookie 放在客户端,可以进行 Cookie 欺骗,所以不安全,Session 放在服务端,更加安全;

  5. 有效期不同:Cookie 可以设置属性达到长期有效,Session 依赖于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的过期时间默认为-1,只需要关闭窗口 Session 就会失效,就算不依赖 Cookie,用 UrL 重写也不能完成,如果 Session 超时时间过长,容易导致内存溢出;

  6. 服务器压力不同:Cookie 保存在本地,不存在服务端压力,Session 保存在服务端,每个用户产生一个 Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用 Cookie;

  7. 浏览器支持不同:如果浏览器禁用 Cookie,那么 Cookie 直接失效,Session 比较好点,可以用 URL 重写;

  8. Cookie 和 Session 应用的场景:Cookie 一般用于记住用户的登录状态,如记录用户的习惯,购物车;而 Session 用于登录验证。

  • HTTPS在哪一层, 会话层在第几层

https在应用层。

会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。

  • 浏览器输入url按回车背后经历了哪些?

在浏览器中输入URL并回车后,主要发生以下步骤:

解析URL,获取要访问的域名

DNS域名解析,根据访问的域名获得目标服务器的IP地址

浏览器与服务端三次握手建立TCP连接

连接建立成功之后就可以发送HTTP请求报文以及服务器返回HTTP响应报文

断开TCP链接

浏览器解析响应报文,渲染页面


作者:程序员面试秘籍

链接:https://zhuanlan.zhihu.com/p/435404670

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   Part 01、  什么是数据质量管理   数据质量管理,是DAMA数据管理知识体系指南中数据治理领域非常重要的一部分(图1 所示),主要是指对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题,进行识别、度量、监控、预警等一列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。  Part 02、 数据质量问题原因及评价标准   数据在计划、获取、存储、共享、维护等各个环节都有可能引发数据质量问题,主要原因分为几下几个方面:  数据不完整:由于企业信息系统的孤立使用,各个业务系统或模块按照各自的需要录...
            0 0 713
            分享
          • 第一章:项目目标基本开源项目:tpshop,这是一个web+app项目阶段核心目标:能够独立完成编写电商类项目的测试用例;能够独立基于测试流程的6个步骤,对电商类项目进行测试。本项目会涉及到的内容web类项目的环境的问题【构成、部署】;web类项目如何熟悉整个项目;测试流程;【核心】测试电商类项目,两个重点:测试业务流程、核心功能;抓包;编写生成测试报告。第二章:项目环境介绍2.1项目架构介绍公司一般有几套环境开发环境:给开发人员使用的测试环境:给测试人员测试软件使用的预生产环境:在正式发布之前的环境生产环境:给普通用户来使用的可以有三套环境,也可以有两套环境:开发+测试、生产开发+测试冲突问...
            0 0 5057
            分享
          • 在测试多个web、移动端项目之后,总结一下功能测试中关键的测试点(自己简单整理,有问题请提出)web项目首页的检查主要包括url地址、页面展示、动画切换显示、首页图标、按钮或链接跳转、后退功能、刷新功能的测试(不要觉得累赘,第一次测试必须验证全,后面其他页面可以适当忽略一些测试点)文本框的检查一般文本框产品都会给出非常详细的限制规则,没有则需要主动询问。并提出不合理之处讨论主要包括以下几点(可以根据实际情况剔除多余测试点):正确输入,在限制条件内取几条用例进行正确值进行测试。一般最小、大边界值各一条,参数类型一条;未输入,在未输入内容的时候,检查显示是否正常;输入,在输入内容的时候,检查显示是...
            0 1 1588
            分享
          • Charles常用的功能总结过滤网络请求;截取 iPhone 上的网络封包;截取 Https 通讯信息;模拟慢速网络;修改网络请求内容;给服务器做压力测试;修改服务器返回内容;Map 重定向功能;Rewrite 功能;Breakpoints 功能;设置ssl允许访问地址;查看连接本机charle代理的ip;设置请求的黑名单;缓存请求返回的内容。对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果...
            14 15 2916
            分享
          • 最近在写一些脚本,为了保持连续性,就在家也抽空赶进度,所以碰到了代码同步的问题,目前想到的方法有三个: 使用云盘,这个拿来即用,但是因为云盘还存放了其他一些东西,总是实时同步不太妥当;使用 SVN,传统的代码托管工具,一直在用;使用 Git,最新的分布式代码托管工具,据说很强大。 最后决定使用 Git,主要是学习下最新的技术。下面是操作步骤,做记录的同时也给其他同学做个指引:先说下环境: 服务端: Ubuntu 16.04 x64客户端: Windows7 x64 服务端配置 先使用如下命令切到 root 权限进行操作:sudo bash 提示输入密码时,输入 root 密码即可。登录...
            1 1 3169
            分享
      • 51testing软件测试圈微信