网络是怎样连接的(1)

  1. 在浏览器的搜索栏中输入www.baidu.com
  2. 浏览器也是一个应用程序,将URL看作https://www.baidu.com/index.html
  3. 根据HTTP协议生成HTTP请求(一种文本形式而不是二进制形式)
    • HTTP请求中包含:URI(对什么)和方法(做什么)
    • URL如上的情况,URI就是index.html这个处于服务器中的文件,做的方法就是GET方法。
    • 生成的HTTP请求有三部分:请求行(方法 URI HTTP版本)消息头(一些配置信息)消息体(GET方法没有消息体,POST方法就有相应表单中的数据消息体,需要发送给服务器)
  4. HTTP请求由浏览器生成之后,需要调用Socket解析器,解析器一层层访问DNS服务器,得到域名对应的IP地址。
  5. 有了IP地址和HTTP请求之后,浏览器应用程序需要控制流程转移,调用OS中的Socket库,Socket库本质上是利用了操作系统中的协议栈发送消息。
  6. 具体调用Socket库发送消息的过程是:
    • 客户端初始化,生成一个套接字描述符,并且随意分配一个端口
    • Socket库connect函数向服务器发起连接,连接的具体服务器套接字在IP:80位置上,客户端将自己套接字的端口告知服务器,两个套接字之间形成管道,连接完成。
    • 客户端write发送HTTP请求。
    • 服务器接收到请求,生成HTTP响应(HTTP响应包括了状态行,消息头,消息体)
    • 客户端read接收HTTP响应,将HTTP响应写入相应的缓冲内存区域。
  7. 控制流程回到浏览器,浏览器读取缓冲内存区域,显示HTTP响应中的消息体的内容(HTML代码是文本形式,图片二进制,视频二进制)
全部评论

相关推荐

醒工硬件:如果你想投硬件,可以考虑这么改: 1.个人荣誉没太有保留价值,除非一页凑不满 2.主修课程太多了,可以考虑删减一部分,或者分成硬件和嵌入式2个简历,侧重点不一样 3.个人技能放到学习经历下面,项目经历上面。学习一下AD画板,你有基础一两周也差不多学会了,面试官问你就说你会(总不能拉你实操吧),公司里一般用AD和Cadence比较多,AD好上手一些。增加常用仪器工具说明,例如示波器、信号发生器、电子负载、烙铁、风枪等 4.项目,项目可以多换换行,挤在一起不好阅读。可以说下红外那边用什么接口,蓝牙那边用什么接口,用了哪些关键技术点,多用术语。如果你投硬件,就增加项目1描述比重,降低项目2描述比重
点赞 评论 收藏
分享
程序员鼠鼠_春招版:我要12k吧我挂了,还招呢,天天被割,这点钱都不舍得出
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务