第三阶段 - 重学网络编程 HTTP、TCP、WebServer

本阶段你会学到 HTTP 相关的知识(原理性的,不只是应用);从客户端到 server 端 HTTP 是如何工作的;TCP 协议;WebServer 相关知识。

搞iOS那会接触的网络知识比较少,只是用到了 Get 与 Post 请求,文件上传与下载。真的只是会用,具体原理啥的没有进行系统学习。导致总是遇到一些奇怪的问题。比如,接口返回 404 了,跑去问 server 啥原因;为什么 server 获取不到 header 信息; 为什么 server 获取不到 body 信息等等一系列问题。这些问题如果没有系统学习网络知识,只能靠经验了。

最近做前端的时候,发现网络知识 太重要了。比如在浏览器中输入一个 url:http://suyan.qianduan.xiaoke/list.html,当按下回车到页面展示这一过程都经历了什么。为什么在浏览器中输入一个 url 即可看到一个 web 页面。这背后靠的是什么技术支持着。WebServer 是如何实现的,我非常好奇其实现原理。

做端的同学经历最多的是网络请求,你知道当端发出一个网络请求后,到 server 返回一个 json 字符串都经历了什么吗?这一过程如果出现错误你会如何处理。你熟悉不同状态码在 server 端是如何处理的吗?

抱着以上问题,我觉得第三阶段我们应该主攻网络编程相关的知识。这部分知识比较多,也比较难,我会把这部分知识打碎,一点一点分享出来,有问题我们共同探讨。最后通过实现一个 WebServer 来结束我们这一阶段的课程。课程大纲如下(会随着课程进行细微的调整,有增删):

1.开启一个WebServer,手机预览第二阶段实践内容;

2.使用 Node 开启一个 HTTP 服务;

3.使用 Node 实现一个简单的 API,探索 API 的实现;

4.在手机(iOS、Android)上如何调试网页;

5.socket 实现;

6.HTTP 相关知识介绍;

7.实现一个 WebServer;

8.前端中的网络请求;

9.Web FrameWork Express 实践;

10.跨域请求;

11.网络安全;

本阶段的课程不是干巴巴地讲理论知识,会根据实际情况来分析网络编程相关的知识。上面大纲提到的是不同的主题,每个主题会分成多天内容来讲解,比如HTTP的内容会有很多。由于我写过iOS和Node,所以对从客户端发起一个请求到 server,server 的处理过程比较熟悉。这一阶段有信心能把内容讲好。

这个阶段的思路是先从应用到具体实现。为了能够透彻理解HTTP,我特意打印了一份 RFC2616 文档做参考,共 109 页内容,这份文档是各种 HTTP 框架实现的「官方文档」,比较有参考价值。

本阶段内容我无法预估需要持续多长时间,不过至少 20 天,由于这期课程比较难,所以不 能保证每天有一节内容 ,会根据具体难度适当放松。愿意一起学习的朋友欢迎一起打卡。

参与注意事项

1 .关注「素燕」公众号,文末有二维码,不然收不到相关内容;

2 .打卡和其它小伙伴互动学习,记录自己的学习过程;

3 .添加我微信(wsy9871),备注小课,有问题方便及时沟通;

本阶段内容不仅对移动端的同学有用,对前端更有用。本来打算这一阶段学习 DOM、BOM 和事件的,后来想了想,网络编程更重要。再次声明一下,《前端小课》不是什么培训机构,它是由我在利用业余时间写的一本电子书,本身免费,但我会保证质量,每阶段结束时靠大家一次自觉赞赏。 最后欢迎志同道合的朋友一块打卡坚持学习,不知道打卡的同学可以看推荐阅读的文章,感谢大家支持。大家加油!!!

祝好!2019-11-8

推荐阅读:

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章