面试题:浏览器HTTP概念及对前端的影响

62 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一. 什么是HTTP

HTTP(Hyper Text Transfer Protocol),翻译成中文就是超文本传输协议,最开始用于规范发布和接受HTML页面的方法。

HTTP是一个客户端和服务端请求和响应的标准:用户通过浏览器、爬虫等客户端代理工具来向服务器发送HTTP请求,请求数据,服务器将存储的资源返回给用户。

二. HTTP版本

目前HTTP最广泛的版本是HTTP1.1,增加了put、delete等请求方法

HTTP请求方法现在大体有:

  1. get:常用于获取数据
  2. post:将实体提交到指定资源
  3. put:一般用于替换、更新
  4. delete:删除指定资源
  5. head:和get相似,但是请求的是元数据

三. HTTP组成

一个完整的HTTP请求都会有请求Request和响应Response。

最常用的请求头中的属性:

  1. content-type:
    1. application/x-www-form-urlencoded:默认值,数据编码被&分隔的键值对,用=连接键值
    2. application/json:表示一个json类型
    3. text/plain:文本类型
    4. application/xml:xml类型
    5. multipart.form-data:上传文件
    6. content-length:文件大小长度
    7. keep-alive:默认connection:keep-alive
    8. accept-encoding:告知服务器,客户端支持的文件压缩格式,比如js可以用gzip编码
    9. user-agent:客户端相关信息
    10. cookie:携带cookie数据

最常用响应信息

HTTP状态码:

200:OK

201:POST创建新资源

301:请求资源URL已经更改,响应中需要给出新URL

400:bad request 客户端请求出了问题

401:未授权,没登录信息

403:登录的权限不够,被拒绝

404:not found 服务器找不到对应url

500:服务器响应问题

503:服务器挂了

四:番外篇

最开始时有一种渲染方式叫SSR(serve side render),翻译成中文就是服务端渲染,完全由服务器返回HTML文件,交给浏览器解析。这么做有很大的缺点,就是我只改动一个数据,那么就需要全体重新请求,对服务器压力很大。

后来出现了ajax,这就促成了前后端分离,前端处理页面逻辑,后端来专心处理数据,每次想修改,只需要前端向后端请求需要的数据,然后前端动态更新对应的页面,不用刷新页面。