2048
登录
没  有  难  学  的  前  端
登 录
×
<返回上一级

前端仔之HTTP

前端作者: Felicial

前端的开发调用接口,经常会用到的就是http,但是在刚接触前端甚至说部分中级水平的前端开发仔都很容易忽视了http知识的掌握,导致就算经历很多项目经验的前端老鸟去面试一旦遇到http就被无情吊打,接下来让本文带你一起初步介绍一下http。


什么是 HTTP?

《图解HTTP》这样描述HTTP在网络中的地位:

Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器等一系列运作流程。而协议是指规则的约定。可以说,Web是建立在HTTP协议上通信的。

HTTP最初的目的是为了让研究者共享知识信息,所以它的主要作用就是文档传输,它是一种用于传输文档的协议。

HTTP是不保存状态的协议,既无状态协议,协议本身对于请求或响应之间的通信状态不进行保存,因此连接双方不能知晓对方当前的身份和状态。这也是Cookie技术产生的重要原因之一:客户端的状态管理。浏览器会根据从服务器端发送的响应报文内 Set-Cookie 首部字段信息自动保持 Cookie。而每次客户端发送 HTTP 请求,都会在请求报文中携带 Cookie,作为服务端识别客户端身份状态的标识。


请求方法


状态码

2XX成功(这系列表明请求被正常处理了)200OK,表示从客户端发来的请求在服务器端被正确处理204No content,表示请求成功,但响应报文不含实体的主体部分206Partial Content,进行范围请求成功
3XX重定向(表明浏览器要执行特殊处理)301moved permanently,永久性重定向,表示资源已被分配了新的 URL302found,临时性重定向,表示资源临时被分配了新的 URL303see other,表示资源存在着另一个 URL,应使用 GET 方法获取资源(对于301/302/303响应,几乎所有浏览器都会删除报文主体并自动用GET重新请求)304not modified,表示服务器允许访问资源,但请求未满足条件的情况(与重定向无关)307temporary redirect,临时重定向,和302含义类似,但是期望客户端保持请求方法不变向新的地址发出请求
4XX客户端错误400bad request,请求报文存在语法错误401unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息403forbidden,表示对请求资源的访问被服务器拒绝,可在实体主体部分返回原因描述404not found,表示在服务器上没有找到请求的资源
5XX服务器错误500internal sever error,表示服务器端在执行请求时发生了错误501Not Implemented,表示服务器不支持当前请求所需要的某个功能503service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求

接下来我们来了解一下前端开发中最常用到的请求头和响应头,也是最多初级前端不了解的和面试问的最多的都在这里面:

请求头


Accept:浏览器可以接受的MIME类型;

Accept-Encoding:浏览器能够进行解码的数据编码方式;

Accept-Language:浏览器希望的语言类型;

Connection:是否开启http持久连接;

Cookie:每次请求携带的Cookie信息;

Host:要请求到的服务器ip地址和端口号;

Referer:指定请求uri的原资源地址;

User-Agent:请求的用户浏览器信息

响应头


Bdpagetype:baidu自己添加的响应头;

Bdqid:baidu自己添加的响应头;

Connection:是否开启http持久连接;

Content-Encoding:文档的编码(encode)方式,例如:gzip;

Content-Language:响应的内容语言类型;

Content-Length:表示内容长度;

Content-type:表明接受实体的MIME类型;

Date:当前的GMT格式时间;

Server:表明服务器软件和版本信息;

Vary:告诉代理服务器缓存两种版本的资源:压缩和非压缩;

Strict-Transport-Security:max-age=172800(访问过这网站的https页面后,再访问它的http页面,浏览器会自动跳转到https);

X-Ua-Compatible:确定我们浏览器的渲染方式;


总结:

HTTP还有很多知识,这次我们就先介绍这些平时项目中最常见的,如果真的有兴趣建议可以好好去看一下《图解HTTP》这本书,认真看完之后,哪怕消化三分之一,我保证你都可以在面试中聊起HTTP来随时吊打面试官哦!


如果你喜欢,欢迎来微信公众号搜索“入坑互联网”,24小时互撩哦~

« 上一篇:为什么面试完,总是让你回去等通知?
» 下一篇:javascript 面向对象编程 (1)
评论
点击刷新
评论
相关博文
×添加代码片段