前端面试

前端学习(面试):HTTP篇

2018-03-07  本文已影响239人  倒霉蛋儿_才才

HTTP是互联网广泛应用的一种网络协议,如今更安全的HTTPS协议,通过安全套接层(Secure Sockets Layer,SSL)可对信息进行加密和身份验证等,能防止数据在传输过程中被篡改!对于HTTP的掌握关系到前端下面,我们来了解一下平时开发需要掌握的与HTTP相关的知识点,其中主要包括协议本身、缓存机制、表单的method方法、跨域和网络安全等。

image.png

1. HTTP请求状态码

状态码表示了客户端与服务端数据交互的状态,其中主要包括1xx(临时相应)、2xx(成功)、3xx(重定向)、4xx(错误)、5xx(服务器错误)等。

下边看具体的常用的状态码:

2. 请求头(HTTP header)

HTTP header通常包括通用头、请求头、响应头和实体头4部分,但是这个分类并不是很明确。如下面为浏览器一次请求的header截图,其中有些事浏览器自动会发送的,有些事需要人为设置的。


http-header.png

3. Restfull API

表现层状态转化,所谓表现层即为资源在网络上的表现形式(Representation),主要通过四个HTTP动作实现,即PutDeletePostGet,分别对应增删改查。以及OptionsHeadTraceConnect等不常用的动作。

4. Cookie、Session、Web Storage(傻傻分不清楚啊)

由于HTTP协议是无状态的,一次数据交换完毕后连接关闭,所以需要做一个可有保持回话状态的东西。典型的:剁手网登陆时可以根据之前的用户名密码直接登陆(这时候便是Cookie在发挥作用);登陆后,剁完手放入购物车,在打开其他页面后购物车剁的手还在(这是Session在搞鬼)。哈哈哈

image.png

5. XMLHttpRequest与Ajax

XMLHttpRequest为浏览器内置的数据异步请求对象,Ajax可以便是通过XHR实现不刷新页面完成Request请求。

请求主要过程如下:

XHR的readyState属性

该属性反映了请求所处的不同阶段,其取值及意义如下:

通过Promise简单封装XMLHttpRequest

function ajax(method, url) {
    return new Promise(function (resolve, reject) {
        let oXHR = new XMLHttpRequest()
        oXHR.open(method, url, true)
        oXHR.onreadystatechange = function () {
            // 成功完成请求
            if (oXHR.readyState == 4 && oXHR.status == 200) {
                resolve(oXHR.response Text)
            } else {
                reject(new Error( oXHR.status))
            }
        }
    })
}

6.网络安全

6.1 跨站脚本攻击(Corss Site Scripting,XSS)

什么?为什么缩写不是CSS?CSS不是层叠样式表吗?哈哈

6.2 跨站请求伪造(Coross Site Request Forgery,CSRF)


主要参考:


如果您感觉有所帮助,或者有问题需要交流,欢迎留言评论,非常感谢!
前端菜鸟,还请多多关照!


上一篇 下一篇

猜你喜欢

热点阅读