吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2559|回复: 2
收起左侧

[其他转载] 【笔记】说说我对web服务器构建的理解

[复制链接]
沉默的小光 发表于 2016-7-21 15:53
本帖最后由 Cizel 于 2016-7-24 16:41 编辑

以下是我的个人思路,可能和实际情况不完全相同,和大家交流网络层
知道一点网络通信知识的都应该知道,网络按五层划分最底层为物理层,没什么好说的;第二层为链路层,接触到最多的是ARP协议,与这个关联也不多;第三层即是网络层,网络层有一个重要的协议——IP。IP可以用于定位到某台主机上,与之连接通信,传过来的数据包里会标明发包人的IP地址。很明显,服务器在没有打开包的情况下,它是不知道这个包到底是TCP还是UDP的或是别的,服务器应当对网卡上所有的包进行检查,找到其中的TCP包(大部分网络通信协议都是基于TCP的)再进行解析。网卡在接收到了一定数据之后,驱动程序会中断CPU,以完成底层的触发,由更层的程序对产生中断的数据包进行处理。也就是通常的抓包的过程。
传输层
传输层是网络分层五层模型中的第四层,其中比较重要的协议是TCP协议。TCP定义了一个字段端口,用于区分同一台主机中的应用程序,这就是为什么每个服务器发布的网站在访问时都要带上端口。如果不设置的话可以默认使用80。在对数据包第四层解析时,挑出服务器需要响应的特定端口的包。到了这一层,要构建服务器,首先要按TCP层协议封装出一套套接字,以便完成连接、数据传递、断开等工作。在这一层上有很多已经实现好的socket,通过对数据包的分析、控制、发送,自己也能实现一套。
应用层
这一层已经是网络五层模型中的最高层了,其中用到的比较重要的协议是HTTP协议。HTTP协议在完成html的请求或是响应时起到重要作用。通过上一层实现好的socket,就可以直接把HTTP中的数据封装成一个结构(类实例),里面相应字段都可以直接由数据包中的字段填充。在发包前,包中的data就是要发送的html代码、或是其它资源,这部分内容是服务器可以控制的。到了这里就很好理解动态网页是怎样产生的了。java中先进行编译,产生类文件,再运行之后,得到相关的数据以填充data字段,最后服务器进行封装发送。


暂时写这么多,以后有机会再补充,欢迎大家说出自己的想法,有不正确的地方请不吝指教。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

beiank 发表于 2017-3-15 09:53
不错  我来补课了  当时没有好好学网络
宇宙小菜鸟 发表于 2017-3-15 23:25 来自手机
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 03:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表