一. 什么是HTTP
HTTP(Hyper Text Transfer Protocol),翻译成中文就是超文本传输协议,最开始用于规范发布和接受HTML页面的方法。
HTTP是一个客户端和服务端请求和响应的标准:用户通过浏览器、爬虫等客户端代理工具来向服务器发送HTTP请求,请求数据,服务器将存储的资源返回给用户。
二. HTTP版本
目前HTTP最广泛的版本是HTTP1.1,增加了put、delete等请求方法
HTTP请求方法现在大体有:
- get:常用于获取数据
- post:将实体提交到指定资源
- put:一般用于替换、更新
- delete:删除指定资源
- head:和get相似,但是请求的是元数据
三. HTTP组成
一个完整的HTTP请求都会有请求Request和响应Response。
最常用的请求头中的属性:
- content-type:
- application/x-www-form-urlencoded:默认值,数据编码被&分隔的键值对,用=连接键值
- application/json:表示一个json类型
- text/plain:文本类型
- application/xml:xml类型
- multipart.form-data:上传文件
- content-length:文件大小长度
- keep-alive:默认connection:keep-alive
- accept-encoding:告知服务器,客户端支持的文件压缩格式,比如js可以用gzip编码
- user-agent:客户端相关信息
- 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,这就促成了前后端分离,前端处理页面逻辑,后端来专心处理数据,每次想修改,只需要前端向后端请求需要的数据,然后前端动态更新对应的页面,不用刷新页面。