• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、DOM简介  1.DOM构造和布局  浏览器在解析HTML文档时,会将每个标签元素抽象成DOM(Document Object Model,文档对象模型)的节点,按照标签元素层次分明的结构,将HTML文档构建成一棵DOM树,如图 1所示。图 1 DOM树示例  浏览器按从上到下,从左到右的顺序,读取DOM树的文档节点,顺序存放到文档流。如果读取的节点是另一节点的子节点,将其按顺序存放在父节点的内部,且嵌套层级没有数量限制。  2.DOM操作  DOM定义了所有HTML元素的对象和属性,以及访问方法。通过DOM提供的方法,所有HTML元素(DOM树节点)均可被修改、创建或删除。图 2展示...
            11 11 1485
            分享
          •   在职场的世界里,经常会遇到一些年轻的求职者,他们怀抱理想,带着青涩的笑容和诚挚的眼神走进面试室,说出那句熟悉的:“虽然我经验不足,能力不强,但我愿意学!”这句话如同一面镜子,映射出他们积极向上的意愿,但同时也折射出他们尚未褪去的学生思维。  记得那是几个月前的一次面试现场,我坐在对面的面试官座位上,眼前是一位略显紧张但目光坚定的应聘女孩。她穿着整洁的职业装,手里紧紧捏着简历,满脸稚嫩却掩饰不住对未来充满憧憬的表情。面试过程中,她的回答并不算出彩,专业技能的展示也稍显不足,但她始终保持着谦逊和礼貌的态度。  在面试接近尾声,我依照惯例询问她是否还有其它问题时,她抬起头,脸上带着一抹羞涩而又真...
            0 0 169
            分享
          •   不知道大家知不知道软件质量模型这个概念。  软件质量模型是衡量软件整体质量效果的度量标准。目前常见的质量模型包括麦考尔模型、博恩模型、FURPS模型、德罗梅模型和ISO9126模型。  一般来说,软件产品需要满足的特征包括功能性、可靠性、易用性、效率性、可维护性和可移植性。  软件质量模型还有另外一个功能:当你不知道如何设计某个产品的测试用例或者需要补充什么用例时,可以参考软件质量模型的标准。  功能  软件提供满足显式和隐式需求的功能的能力。  这就要求产品具有特定的能力,并且能够正确、完整、准确地工作。  正确的账号和密码应该能够正常登录,错误的账号和密码应该被拦截并给出正确的提示。同...
            0 0 660
            分享
          •   测试工程师这个岗位对于有些人来说,可能月薪过万很容易,可对于有些人来说,仿佛已经达到瓶颈,任凭工作再卖力每月也只是四五千的薪资,月入过万对于这些人来说就是可望不可即,那么这些人怎么才能冲破瓶颈,拿到满意的薪资呢?这篇文章就为大家解答一下。  其实对于一个技术岗位而言,最快的晋升方法就是提升我们的技术等级,下面小编就根据不同的技术等级为大家罗列出薪资,从事相关领域的小伙伴可以自行代入,这里的薪资参照区间以西安为主。  手工测试工程师,(月薪8k左右)  主要技能:测试分析+用例设计+测试执行  在测试行业,手工测试属于初级阶段,类似于游戏王者荣耀里面的青铜段位,一般这个段位基本上都是刚接手游...
            0 0 1338
            分享
          •   一、软件测试工程师大致有4个发展方向:  1资深软件测试工程师  一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。  达到这个水平比较困难,这需要了解很多知识,例如C语言,JAVA语言,数据库,数据结构,软件工程,等等,但是你要在一家公司干3--5年的话,在压力中这些技能你都会掌握!  2测试部门管理者  小的如组长,大的如测试经理,这需要你有先天的优势,善于交流沟通,善于处理人际关系!不过做两年,你也会成为老油条的!  3测试书籍编写者  出书也是很赚钱的,当你在这一行干了几年,积攒了足够的经验,可以把你的经验,具体做过的项目总结出来,现在关于软件测试的...
            0 0 1054
            分享
      • 51testing软件测试圈微信