前端工程师必须要知道的HTTP部分
1. IETF组织制定的标准
rfc7234: https://tools.ietf.org/html/rfc7234 --- 原来的2616以被废弃
2. 格式
HTTP分为 请求Request 和 响应Response,如图:

Request
Header(例子解析):

Body:
一般请求体就是以下4种格式
- application/json
 - application/x-www-form-urlencoded
 - mutipart/form-data
 - text/xml
 
Demo:
GET / HTTP/1.1
Host: time.geekbang.org
Response
Header(例子解析):

Body:
一般响应体就是HTML、JSON 或者 二进制多媒体数据
Demo:
HTTP/1.1 Moved Permanently
Date: Fri, Jan :: GMT
Content-Type: text/html
Content-Length:
Connection: keep-alive
Location: https://time.geekbang.org/
Strict-Transport-Security: max-age= <html>
<head><title> Moved Permanently</title></head>
<body bgcolor="white">
<center><h1> Moved Permanently</h1></center>
<hr><center>openresty</center>
</body>
</html>
3. HTTP Method
- GET (查)
 - POST (改)
 - PUT (增)
 - DELETE (删)
 - HEAD (只返回响应头的GET)
 - CONNECT (多用于WebSocket、HTTPS)
 - OPTIONs、TRACE (多用于调试)
 
4. HTTP Status Code
状态代码有以下:
- 1xx:指示信息--表示请求已接收,继续处理。
 - 2xx:成功--表示请求已被成功接收、理解、接受。
 - 3xx:重定向--要完成请求必须进行更进一步的操作。
 - 4xx:客户端错误--请求有语法错误或请求无法实现。
 - 5xx:服务器端错误--服务器未能实现合法的请求。
 
常见状态代码、状态描述的说明如下。
- 200 OK:请求成功
 - 301 Moved Permanently 永久性重定向
 - 302 Move temporarily 临时重定向
 - 304 Not Modified 客户端缓存没有更新
 - 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
 - 401 Unauthorized:没有身份认证
 - 403 Forbidden:没有权限
 - 404 Not Found:没有资源
 - 500 Internal Server Error:发生不可预期的错误
 - 503 Server Unavailable:暂时不能处理请求,一段时间后可能恢复正常
 
Get 和 Post 的区别?
无副作用:资源不变
幂等:执行多次,跟执行一次效果一致。
1. 在符合标准的情况下,Get运用于无副作用,幂等的场景,Post 多用于 有副作用,不幂等的场景。
2. Get 能缓存,Post 不能
3. Get 参数受限于url长度上限
4. Post 支持更多的编码类型,Get 只有urlencode
前端工程师必须要知道的HTTP部分的更多相关文章
- 前端工程师必须要知道的SEO技巧(1):rel=nofollow的使用
		
前提:最近我在找工作,想面试一些关于前端的工作,被问到了一些关于SEO优化的问题.我深深的感觉我所回答的太过于表面,没有深入.所以,又把SEO的内容看了一遍.自己总结如下:有的是看的其他博友的贴子,发 ...
 - 前端工程师必须要知道的SEO技巧(2):制作比设计还要漂亮的代码(内容和语义化代码)实现下
		
提醒自己:上一篇文章属于纯理论的文章,我自己有的部分之从网上摘抄的,我自己也是不理解的.或许过一段日子我就能全明白了.我自己还是喜欢实战,做几个例子就明白了. 怎么做让自己网页的标签来实现语义化,我直 ...
 - 喂,前端,你应该知道的chrome插件
		
最近,优点闲. 压力,有点大,回顾,曾今被问,你怎么查看内存泄露,然后,一脸蒙. 工欲善其事, 必先利其器 最近在研究chrome devtools,发现,其实他很强.而且chrome6周一次的更新, ...
 - 每个 JavaScript 工程师都应当知道的 10 个面试题
		
1. 能说出来两种对于 JavaScript 工程师很重要的编程范式么? JavaScript 是一门多范式(multi-paradigm)的编程语言,它既支持命令式(imperative)/面向过程 ...
 - 前端程序员应该知道的15个 jQuery 小技巧
		
下面这些简单的小技巧能够帮助你玩转jQuery. 返回顶部按钮 预加载图像 检查图像是否加载 自动修复破坏的图像 悬停切换类 禁用输入字段 停止加载链接 切换淡入/幻灯片 简单的手风琴 让两个div高 ...
 - 前端程序员应该知道的 15 个 jQuery 小技巧
		
下面这些简单的小技巧能够帮助你玩转jQuery. 返回顶部按钮 预加载图像 检查图像是否加载 自动修复破坏的图像 悬停切换类 禁用输入字段 停止加载链接 切换淡入/幻灯片 简单的手风琴 让两个div高 ...
 - 【译】前端开发者都应知道的 jQuery 小技巧
		
回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: // Back to top $('a.top').click(f ...
 - 前端Leader你应该知道的NPM包管理机制
		
npm install 命令 首先总结下npm 安装一个模块包的常用命令. /* 模块依赖会写入 dependencies 节点 */ npm install moduleName npm insta ...
 - vue—你必须知道的       js数据类型    前端学习    CSS 居中    事件委托和this    让js调试更简单—console   AMD && CMD   模式识别课程笔记(一)   web攻击   web安全之XSS  JSONP && CORS   css 定位  react小结
		
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
 
随机推荐
- Java https ssl证书导入删除
			
下载并命名 例如命名github.cer 放进jre的lib\security下 keytool -delete [OPTION]... 选项: -alias <alias> 要处理的条目 ...
 - FPGA驱动VGA显示静态图片
			
一 .前言 本文设计思想采用明德扬至简设计法.VGA是最常见的视频显示接口,时序也较为简单.本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采 ...
 - Ubuntu 16.04 启用  点击Launcher图标,窗口实现最小化  功能
			
安装了Ubuntu之后,要是每次都点击最小化按钮来实现窗口的最小化,操作起来很不方便,那么怎么样才能方便操作呢, Ubuntu 16.04 本身支持 点击应用程序Launcher图标实现最小化 功能, ...
 - 解决topjui中工具栏按钮删除刷新从属表
			
遇到了这么个问题:当在从属datagrid表格中,点击主表工具栏按钮中的删除,通过后台的多表删除的sql,返回给前台之后,从属表的数据成功在数据库中删除,但是在前台页面显示的时候,只刷新了主表,子表未 ...
 - 【Python 17】B分R计算器1.0(数值类型)
			
1.案例描述 基础代谢率(BMR):我们安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上. 计算公式: BMR(男) = (13.7*体重kg)+(5.0*身高cm)-(6. ...
 - java常用问题排查工具
			
一:jstack找到最耗cpu的线程并定位代码 1.ps -ef|grep java 或者 jps -l 得到进程pid 2.找到该进程内最耗cpu的线程,我一般使用: top -Hp pid 3.c ...
 - 函数rand,randn,randi
			
1,rand 生成均匀分布的伪随机数.分布在(0~1)之间主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数,参数还可以是 ...
 - BZOJ3174 TJOI2013 拯救小矮人 贪心、DP
			
传送门 原问题等价于:先给\(n\)个人排好顺序.叠在一起,然后从顶往底能走即走,问最多能走多少人 注意到一个问题:如果存在两个人\(i,j\)满足\(a_i + b_i < a_j + b_j ...
 - Codeforces Round #498 (Div. 3)--E. Military Problem
			
题意问,这个点的然后求子树的第i个节点. 这道题是个非常明显的DFS序: 我们只需要记录DFS的入DFS的时间,以及出DFS的时间,也就是DFS序, 然后判断第i个子树是否在这个节点的时间段之间. 最 ...
 - mybatis 使用resultMap实现表间关联
			
AutoMapping auto mapping,直译过来就是自动映射,工作原理大概如下: 假设我们有一张表,表名为person,包含id,name,age,addr这4个字段 mysql> d ...