前端面试题之 HTTP

  1. 列举常见的 HTTP 状态码。

    • 最基本的响应代码
      • 200("OK")
        • 一切正常。实体主体中的文档(若存在的话)是某资源的表示
      • 400("Bad Request")
        • 客户端方面的问题。实体主题中的文档(若存在的话)是一个错误消息。希望客户端能够理解此错误消息,并改正问题
      • 500("Internal Server Error")
        • 服务期方面的问题。实体主体中的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题
      • 301("Moved Permanently")
        • 当客户端触发的动作引起了资源 URI 的变化时发送此响应代码。另外,当客户端向一个资源的旧 URI 发送请求时,也发送此响应代码
      • 404("Not Found") 和410("Gone")
        • 当客户端所请求的 URI 不对应于任何资源时,发送此响应代码。404用于服务器端不知道客户端要请求哪个资源的情况;410 用于服务器端知道客户端所请求的资源曾经存在,但现在已经不存在了的情况
      • 409("Conflict")
        • 当客户端试图执行一个"会导致一个或多个资源处于不一致状态"的操作时,发送此响应代码
    • 状态码系列
      • 1XX:通知
        • 1XX系列响应代码仅在与HTTP服务器沟通时使用
      • 2XX: 成功
        • 2XX系列响应代码表明操作成功了
      • 3XX 重定向
        • 3XX 系列响应代码表明:客户端需要做些额外工作才能得到所需要的资源。它们通常用于 GET 请求。他们通常告诉客户端需要向另一个 URI 发送 GET 请求,才能得到所需的表示。那个 URI 就包含在 Location 响应报头里
      • 4XX:客户端错误
        • 这些响应代码表明客户端出现错误。不是认证信息有问题,就是表示格式或 HTTP 库本身有问题。客户端需要自行改正
      • 5XX 服务端错误
        • 这些响应代码表明服务器端出现错误。一般来说,这些代码意味着服务器处于不能执行客户端请求的状态,此时客户端应稍后重试。有时,服务器能够估计客户端应在多久之后重试。并把该信息放在 Retry-After 响应报头里
  2. HTTP 中有哪些请求方式?

    • OPTIONS
      • 返回服务器针对特定资源所支持的 HTTP 请求方法,也可以利用向 web 服务器发送'*'的请求来测试服务器的功能性
    • HEAD
      • 向服务器索与 GET 请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息
    • GET
      • 向特定的资源发出请求
      • 注意: GET 方法不应当被用于产生"副作用"的操作中,例如在 Web Application 中,其中一个原因是 GET 可能会被网络蜘蛛等随意访问。 Loadrunner 中对应 get 请求函数: web_link 和 web_url
    • POST
      • 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner 中对应 POST 请求函数: web_submit_data , web_submit_form
    • PUT
      • 向指定资源位置上传其最新内容
    • DELETE
      • 请求服务器删除Request-URL所标识的资源
    • TRACE
      • 回显服务器收到的请求,主要用于测试或诊断
    • CONNECT
      • HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
    • 注意:
      1. 方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码 405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码 501(Not Implemented)。
      2. HTTP 服务器至少应该实现 GET 和 HEAD/POST 方法,其他方法都是可选的,此外除上述方法,特定的 HTTP 服务器支持扩展自定义的方法。
  3. 一个页面从输入 URL 到页面加载显示完成,这个过程都发生了什么?

    • 首先,在浏览器地址栏中输入 url
    • 浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作
      1. 浏览器缓存:浏览器会记录 DNS 一段时间,因此,只是第一个地方解析 DNS 请求
      2. 操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的 DNS 查询缓存)
      3. 路由器缓存:如果上述两个步骤均不能成功获取 DNS 记录,继续搜索路由器缓存
      4. ISP 缓存:若上述均失败,继续向 ISP 搜索
    • 在发送 http 请求前,需要域名解析( DNS 解析),解析获取相应的 IP 地址
    • 浏览器向服务器发起 tcp 连接,与浏览器建立 tcp 三次握手
    • 握手成功后,浏览器向服务器发送 http 请求请求数据包
    • 服务器处理收到的请求,将数据返回至浏览器
    • 浏览器收到 HTTP 响应
    • 读取页面内容,浏览器渲染,解析 html 源码
    • 生成 Dom 树、解析 css 样式、js 交互
    • 客户端和服务器交互
    • ajax 查询
  4. cookie 与 session 的区别是什么?

    • cookie 是由 Web 服务器保存在用户浏览器上的小文件,包含有关用户的信息
    • session 是用来在客户端与服务器端之间保持状态的解决方案和存储结构
    • 区别:
      1. cookie 数据存放在客户的浏览器上,session 数据放在服务器上
      2. cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全应当使用 session
      3. session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,考虑到服务器性能方面,应当使用 cookie
      4. 单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie
      5. 我认为将登陆信息等重要信息存放为 session,其他信息如果需要保留,可以放在 cookie 中
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容