01、HTTP 常⻅的状态码有哪些?

1xx 服务器收到请求

2xx 请求成功         ---   200 成功状态码

3xx 重定向            ---  301永久重定向,浏览器下次⾃动取重定向的地址 ---  302临时重定向,浏览器下次还会请求原地址 --- 304 资源未被修改

4xx 客户端错误     ---  403 没有权限  --- 404 资源未找到

5xx 服务器错误     --- 500 服务器错误 --- 网关超时

02、HTTP 常⻅的 header 有哪些?

常⻅的 Request Header
Accept 浏览器可接收的数据格式
Accept-Encoding 浏览器可接收的压缩算法,gzip
Connection:Keep-alive ⼀次TCP连接重复使⽤
UserAgent 浏览器信息
Content-type: application/json
常⻅的 Response Header
Content-type: application/json
Content-length 返回数据⼤⼩,多少字节
Content-Encoding 返回数据的压缩算法 gzip 缓存相关 Header
Cache-Control(新)代替 Expires(⽼) 控制缓存
Last-Modified If-Modified-Since
Etag If-None-Match

03、什么是 Restful API?

常⻅method

get 获取数据

post 发送数据

patch/put 更新数据

delete 删除数据

【传统API】

把每个URL当做⼀个功能

【Restful API】

把每个URL当做⼀个唯⼀的资源,⽤method表示操作类型

有操作类型,有资源标识,这个API的⽬的就⼀⽬了然了

04、描述从输⼊URL到渲染出⻚⾯的整个过程

请求过程:

DNS:域名 -> IP

浏览器向服务器发起http请求(3次握⼿)

服务器处理HTTP请求,并返回给浏览器

渲染过程:

根据HTML⽣成DOM Tree

根据CSS⽣成CSSOM

DOM Tree+CSSOM形成Render Tree

浏览器根据 Render Tree 渲染⻚⾯

遇到 js 暂停渲染,优先加载并执⾏js,完成再继续渲染 Render Tree

为什么要把 CSS 的 <link /> 标签放在 <head> 中?

优先渲染将样式表放在文档底部附近,会使许多浏览器(包括Internet Explorer)不能逐步呈现页面

为什么把 JS 代码放在body下⾯? 

提高用户体验,js放在head里面,会堵塞DOM的生成。使用就无法获取通过选择器获取DOM元素进行操作

除了特殊处理的代码

05、window.onload与DOMContentLoaded有什么区别?

window.onload ⻚⾯的全部资源加载完才会执⾏,包括图⽚、视频等

DOMContentLoaded DOM渲染完就执⾏,图⽚、视频可能还没加载完

06、如何预防xss攻击?/ 前端常⻅的攻击⽅式有哪些?

场景:

博客或其他需要⽤户输⼊内容

预防:

替换特殊字符 < 变成  & l t ;  > 变成  & g t ;

前后端都要替换特殊字符

推书:《⽩帽⼦讲web安全》 吴翰清

07、如何预防xsrf攻击?

场景:
电⼦邮件中包含
<img src="xxx.com/bug?id=100" > 预防:
使⽤post接⼝
增加验证,指纹、⽀付密码、⼈脸...

08、let、const、var有什么区别?

let const 块作⽤域,var 没有
let 变量
const 常量,定义后不能修改

个人博客地址:http://blog.qianbaiyv.cn/get/my/blog/details/2311887075%40qq.com/123

面试 考察网络请求HTTP相关知识(第六天!)的更多相关文章

  1. 网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

    网络请求的基本知识   我们网络请求用的是HTTP请求 Http请求格式:请求的方法,请求头,请求正文 Http请求的Request fields:请求的头部,以及被请求头部的一些设置 Http请求的 ...

  2. AFNetWorking 之 网络请求的基本知识

    NSString *urlStr = @"http://api.openweathermap.org/data/2.5/forecast/daily"; AFHTTPRequest ...

  3. 面试之jsp、Servlet相关知识——生命周期, 区别等

    1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...

  4. HashMap面试必问的数据结构相关知识

    如果在看这篇文章时,对HashMap的结构还不是很了解,建议你参考前段时间写的<刨死你系列——HashMap剖析(基于jdk1.8)>,可能会对下面的提及到知识点有些帮助. 1:HashM ...

  5. iOS基础之网络请求相关

    1.AFNetwork二次封装方法一: #import <Foundation/Foundation.h> @interface BeeNetworkManager : NSObject ...

  6. 【Android】Volley做网络请求的几种用法

    前言: 最近在将自己写的烂代码重构,以前使用的网络请求全是基于apache的HttpClient,简单使用还好,使用多了发现重复代码太多,而且每次使用都很繁琐,因此在网上找了半天网络请求的相关类库,最 ...

  7. Android中的异步网络请求

    本篇文章我们来一起写一个最基本的Android异步网络请求框架,借此来了解下Android中网络请求的相关姿势.由于个人水平有限,文中难免存在疏忽和谬误,希望大家可以指出,谢谢大家:) 1. 同步网络 ...

  8. Android中解析网络请求的URL

    近期正在做Android网络应用的开发,使用了android网络请求方面的知识.如今向大家介绍网络请求方面的知识.我们知道android中向server端发送一个请求,(这就是我们通常所说的POST请 ...

  9. iOS网络相关知识总结

    iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...

  10. 【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

    原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射 ...

随机推荐

  1. BNC Part-of-speech codes

    Extracted from the BNC Manual AJ0 adjective (general or positive) e.g. good, old AJC comparative adj ...

  2. 腾讯云实验室 Gitea 互动教程上线啦

    如果你想学习.体验或是向他人演示开源的 Gitea 代码托管方案,那么接下来给你推荐一款神器. 使用腾讯云实验室免费获得 Gitea 实验环境,直接通过浏览器就可在 Ubuntu Server 20. ...

  3. B树-查找

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 查找 假设有一棵3阶B树,如下图所示. 下面说明在该B树中查找52的过程 首先,从根结点出发,根结点有两个键40和 ...

  4. 利用ldt_struct 与 modify_ldt 系统调用实现任意地址读写

    利用ldt_struct 与 modify_ldt 系统调用实现任意地址读写 ldt_struct与modify_ldt系统调用的介绍 ldt_struct ldt是局部段描述符表,里面存放的是进程的 ...

  5. 云原生之旅 - 3)Terraform - Create and Maintain Infrastructure as Code

    前言 工欲善其事,必先利其器.本篇文章我们介绍下 Terraform,为后续创建各种云资源做准备,比如Kubernetes 关键词:IaC, Infrastructure as Code, Terra ...

  6. 启动elasticsearch报错解决

    说不定以后会不定期更新该文档 1.提示文件描述符数量太少,修改/etc/security/limits.conf文件,添加. * soft nofile 65537 * hard nofile 655 ...

  7. Elastic:使用Postman来访问Elastic Stack

    转载自:https://elasticstack.blog.csdn.net/article/details/104982536 官方链接地址:https://www.elastic.co/guide ...

  8. Prometheus高可用部署

    Prometheus的本地存储给Prometheus带来了简单高效的使用体验,可以让Promthues在单节点的情况下满足大部分用户的监控需求.但是本地存储也同时限制了Prometheus的可扩展性, ...

  9. 关于linux的一点好奇心(五):进程线程的创建

    一直以来,进程和线程的区别,这种问题一般会被面试官拿来考考面试者,可见这事就不太简单.简单说一点差异是,进程拥有独立的内存资源信息,而线程则共享父进程的资源信息.也就是说线程不拥有内存资源,所以对系统 ...

  10. Codeforces Round #442 (Div. 2) B. Nikita and string

    题意:求最长可以分a b a为三部分子串,a b a可以为空 思路在代码里 1 #include<cstdio> 2 #include<iostream> 3 #include ...