前端工程师必须要知道的HTTP部分
2023-09-14 09:00:17 时间
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 301 Moved Permanently Date: Fri, 25 Jan 2019 13:28:12 GMT Content-Type: text/html Content-Length: 182 Connection: keep-alive Location: https://time.geekbang.org/ Strict-Transport-Security: max-age=15768000 <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 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
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- 06·灵魂前端工程师养成-HTML标签
- 18·灵魂前端工程师养成-JS语法入门
- 16·灵魂前端工程师养成-JavaScript内存图
- 15·灵魂前端工程师养成-JavaScript历史
- 14·灵魂前端工程师养成-代码实现HTTP
- Oracle数据库工程师手记:备份恢复双城记(三)
- java工程师_Java工程师是青春饭吗?[通俗易懂]
- 前端工程师vscode必备插件(20个)
- 嵌入式工程师天天在公司调参数,真的好吗?
- 万字启程——零基础~前端工程师_养成之路001篇
- 校招实习JD-安全工程师
- 31·灵魂前端工程师养成-[项目]前端导航网站
- 34·灵魂前端工程师养成-[前后分离]跨域、CORS、JSONP
- Java高级工程师面试题整理
- 前端工程师在面试时经常被问的闭包到底是什么?我用打包礼物的例子让你秒懂
- 前端工程师常考手写面试题指南
- 前端工程师leetcode算法面试必备-二分搜索算法(中)
- 前端工程师leetcode算法面试必备-二叉树深度广度遍历1
- 沪漂日记 | 15. 不懂设计的芯片验证工程师走不远
- 从 JS 到全生态,云原生时代下的前端成长演进之路 |展望前端工程师的 2023
- 从Linux C工程师到技术大牛的路(linuxc工程师)
- Linux工程师职业发展前景(linux职位)
- 赢在起跑线:应聘Redis开发工程师的宝典(面试redis)
- Linux工程师:掌握Linux技术并运用之(linux工程师工作内容)
- OPPO 招聘健康算法工程师、生物医学工程师,或已在布局健康业务
- 提升Linux软件开发工程师技能,开创新机遇(linux软件开发工程师)
- Linux工程师发展之路:探索未来(linux工程师发展方向)
- 工程师真是好的结婚对象么?
- 郑州专业Linux运维工程师上岗!(郑州linux运维工程师)
- 西安招募Redis开发工程师(西安redis招聘)