计算机网络简单通识

TCP、UDP的区别

TCP需要先建立连接,而UDP不需要。所以TCP是可靠的,通过确认重发机制去保证数据的可靠传输,UDP是不可靠的,数据包可能会丢失重复乱序。

TCP适用于对数据准确性要求高的场合,例如网页浏览,电子邮件,文件传输。

UDP适合对于速度要求高可以容忍一定丢失的场合,例如抖音直播。

HTTP和HTTPS的区别

  1. HTTPS是HTTP的增强版,在HTTP的基础上加入了SSL/TSL协议,确保数据在传输过程中是加密的。SSL/TLS需要向CA申请数字证书,用于验证服务器的身份。
  2. HTTP默认端口号是80,HTTPS默认端口号是443。
  3. 客户端请求服务端后,服务端确定加密和hash算法,返回证书和公钥,客户端生成随机密钥,发送密钥,服务端用私钥解密,获取会话密钥,使用会话密钥加密解密。

Cookie和Session的区别

Cookie是保存在客户端的一小块文本串的数据。客户端向服务器发起请求时,服务端会向客户端发送一个cookie,客户端就把cookie保存起来,下一次请求可以携带cookie请求,服务端根据cookie判断用户的身份和状态。

Session指的是服务器和客户端一次会话的过程。它是另一种记录客户状态的机制,session保存在服务器上。

OSI网络七层协议模型

OSI是理论上的网络通信模型,分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

TCP/IP四层模型是实际应用层面上的网络模型,分为网络接口层、网络层、传输层、应用层。

应用层:直接面向用户和应用程序提供网络服务,例如HTTP。

传输层:负责端到端的传输,确保数据可靠传输,常见的传输层协议有TCP和UDP。

网络层:负责多个网络之间的数据传输功能,常见协议是IP协议。

网络接口层:负责数据帧的传输,定义了网络在链路上如何传输数据。

TCP三次握手,四次挥手

  1. 第一次握手:SYN

发起连接:客户端发送一个TCP报文到服务器,在报文的头部中,SYN位被设置为1,表明是一个连接请求。同时客户端会随机一个seq序列号,假设为x发送给服务器。

  1. 第二次握手:SYN+ACK

确认并应答:服务器收到客户端的请求连接之后,如果同意建立连接,他会发送一个应答的TCP报文段,在这个报文段中,SYN和ACK位置都被设置为1。服务器也会选择自己的一个随机序列号假设为y,并将确认号设置为x+1。

  1. 第三次握手:ACK

最终确认:服务端收到服务器的应答后,还需要向服务器发送一个ACK,确认号被设置为y+1,自己的序列号是x+1。

三次握手需要双方都确认收发功能,所以不能是两次,而且两次会有历史请求突然传到服务端的问题。四次的话因为三次已经完整确认了收发功能所以不需要四次。

  1. 第一次挥手:FIN

客户端向服务端发送一个FIN报文,表示客户端没有数据要发送了,但仍然可以接受数据。

  1. 第二次挥手:ACK

服务端收到FIN报文之后,向客户端发送一个ACK报文,表示确认收到客户端的FIN请求。

  1. 第三次挥手:FIN

服务器向客户端发送一个FIN报文,表示服务器也没有数据要发送了。

  1. 第四次挥手:

客户端收到FIN报文之后,向服务器发送一个ACK报文,确认已经接收到服务器的FIN请求,会等待一段时间进入closed状态确保服务端收到ACK报文。

浏览器输入URL到页面展现的整个过程

  1. DNS解析:浏览器发起一个DNS请求到DNS服务器,将域名解析为服务器的IP地址。
  2. TCP链接:在获得IP地址后,需要与服务端建立TCP连接才能通信,也就是要经历TCP三次握手。
  3. 发送HTTP请求:在建立连接之后,我们就可以和服务端进行通信了,我们浏览器会构建HTTP请求,包含请求行、请求头、请求体,然后发送HTTP请求。
  4. 服务器收到HTTP请求:服务器在收到HTTP请求之后,会根据请求的资源路径,经过后端处理返回HTTP响应。
  5. 浏览器接收到HTTP响应:解析响应体中的数据,渲染页面。
  6. 断开链接:TCP四次挥手,连接结束。

常见状态码以及它们的含义

101 切换请求协议

200 请求成功

301 永久重定向

302 临时重定向

400 请求的语法错误

401 当前请求需要认证

403 服务器拒绝执行

404 服务器找不到资源

500 服务器内部错误

### 关于计算机通识讲义 PDF 和下载资源 对于希望获取 **计算机通识讲义 PDF** 或者 **计算机基础讲义** 的需求,以下是详细的解答: #### 1. 官方教材推荐 官方出版的教材通常是最权威的选择之一。例如,《大学计算机基础》第三版由张艳编著[^1],这本书涵盖了计算机软硬件技术、网络技术以及计算思维等内容,适合初学者系统化学习。可以通过各大在线书店或者学校图书馆查找并购买此书。 如果需要电子版本,可以尝试访问以下平台: - 学校官网或教务处网站:许多高校会提供免费的课程讲义供学生下载。 - 图书馆数据库:部分高校图书馆订阅了 CNKI(中国知网)、超星数字图书馆等服务,这些平台上可能有相关书籍的数字化版本。 #### 2. 开放教育资源 (OER) 开放教育资源是一种合法途径,用于获取高质量的学习材料。以下是一些知名的 OER 平台: - **麻省理工学院开放式课程ware (MIT OpenCourseWare)** 提供大量计算机科学入门级课程及其配套资料,虽然主要面向英语使用者,但对于理解核心概念非常有用。 - **Coursera / edX** 这两个平台上有来自世界各地顶尖大学开设的 MOOCs(大规模开放在线课程),有些课程附带完整的讲义和视频教程。 - **国内MOOC平台** 如学堂在线、网易云课堂也提供了丰富的中文内容,覆盖从零基础到高级编程技巧等多个层次的知识点。 #### 3. 技术社区分享 除了正式渠道外,在线开发者和技术爱好者群体也会自发整理并共享他们的笔记或总结文档。这类资源往往更加贴近实际应用场景,并且更新频率较高。但是需要注意甄别质量高低以及版权归属情况。 - GitHub 上有许多个人项目包含了精心制作的教学文件夹;搜索关键词如“computer science basics”、“programming fundamentals Chinese”即可找到相关内容。 - 优快云 博客论坛也是寻找本土化解读的好地方,很多博主都会将自己的经验教训撰写成易于理解的文章形式发布出来供大家参考学习。 #### 4. 警惕侵权行为 尽管互联网极大方便了人们获取知识的方式,但仍需警惕非法传播受保护作品的行为。未经授权擅自复制粘贴他人创作成果不仅违反道德规范还触犯法律条款,请务必尊重原创作者劳动成果! --- ```python import requests from bs4 import BeautifulSoup def search_lecture_notes(keyword="计算机通识"): url = f"https://example.com/search?q={keyword}" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') results = [] for item in soup.find_all('div', class_='result-item'): title = item.find('h3').text.strip() link = item.find('a')['href'] description = item.find('p').text.strip()[:100]+'...' results.append((title,link,description)) return results if __name__ == "__main__": notes = search_lecture_notes() for idx,(t,l,d) in enumerate(notes): print(f"{idx+1}. {t}\n{l}\n{d}\n\n") ``` 以上是一个简单的 Python 脚本示例,展示如何利用爬虫技术自动化检索特定主题下的公开可用资源链接列表(仅为示意用途,请勿滥用)。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值