网络是怎样连接的_学习笔记(一)(生成HTTP消息、域名解析、协议栈发送消息)

一、前言
  • 重要的知识点都在书上了,无意义的重复书上的知识点不是一种正确的学习方法;下面的都是总结和自我复述
  • 浏览器输入网址(URL)到将这些请求消息打包发送出网卡是本章的主要内容
二、整个过程叙述如下:
  1. 浏览器先对网址进行解析,获知浏览器的访问方式(http、ftp、mailto等)、服务器名称、数据源的路径等信息
  2. 根据HTTP协议生成请求消息(请求行、消息头、消息体)
  3. 通过DNS服务器查询到指定域名的IP地址(也即域名解析);如果最近的DNS服务器没有该域名的IP地址,将会从根域开始查询,逐级向下级域查询,直到找到指定域名的IP地址
  4. 有了IP地址之后,就可以委托操作系统的协议栈发送消息了;这个过程的具体操作是按照一定的顺序调用Socket库中程序组件(API).
    • 注意:Socket库中的函数所做的事情是委托协议栈干活,真正具体到创建套接字、收发数据等都是由协议栈完成的
    • 创建套接字、建立连接、收发数据、断开连接
  5. 如下图所示:
    09954
三、生成http消息阶段的思维导图(超重要!!!!)

在这里插入图片描述

四、通过DNS服务器实现域名解析的思维导图(逻辑超清晰!!)

在这里插入图片描述

五、委托协议栈发送消息(此处属于概括性的,具体实现在见下一篇博客)

在这里插入图片描述

六、名词解释
  1. URL
    • Uniform Resource Locator ,统一资源定位符,可以理解为网址
  2. URI
    • Uniform Resource Identifier ,统一资源标识符
    • 一般指的是HTTP协议消息中的访问目标,可以是存放网页的文件名也可以是一个CGI程序的文件名
  3. FTP
    • File Transfer Protocol ,文件传输协议
    • 一种在上传、下载文件时使用的协议,使用FTP协议来传送文件的程序也称为FTP
  4. CGI程序
    • 按照CGI规范工作的程序称为CGI程序
    • CGI(官方解释):对Web服务器程序调用其他程序的规则所做的定义就是CGI
    • 我的理解:有时候Web服务器收到一个请求消息,被请求的内容不是服务器可以直接返回的某些数据;这些数据需要经过某个程序(设为程序A)处理或是获取或者其他,也即最后Web服务器返回的数据是程序A返回的数据,这个程序A就是CGI程序
  5. HTTP协议
    • Hypertext Transfer Protocol ,超文本传送协议
    • HTTP协议主要就是规定了网页客户端与服务器之间交互的消息内容和步骤(如上文第三节所述)
  6. DNS服务器
    • Domain Name System ,域名服务系统
    • 其内部有将服务器名称(域名)和IP地址相关联的"表",在收到查询请求时,可进行域名解析,返回域名对应的IP地址
  7. DNS解析器
    • 其实就是DNS客户端
  8. 根域
    • 域名是分级的,处在最顶层的域为根域
    • 一般用一个点 . 表示(通常在输入网址时被省略)
    • 如:https://www.baidu.com.最后一个点就表示根域
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖啡与乌龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值