博客
关于我
计算机网络 一:客户端的应用层
阅读量:365 次
发布时间:2019-03-04

本文共 854 字,大约阅读时间需要 2 分钟。

计算机网络的工作原理是基于多层协议架构,应用层、传输层、网络层、数据链路层和物理层从上到下逐步处理数据。应用层是最上面的层次,接收用户的请求并将数据格式化为网络可以处理的形式。随着数据向下传递,每一层都会对其进行处理,直到从客户端的物理层发送到服务器,再从服务器的物理层接受并逐层处理,最终呈现给应用程序。

当用户输入网址或填写表单数据后点击发送按钮,HTTP协议会生成请求消息。请求消息包括方法和URI两部分,方法主要有GET和POST两种。GET方法将数据附加到URI中,适用于小数据传输,而POST方法将数据存储在消息体中,适用于大数据或图片等内容。

URI在请求消息中指定了服务器上的文件、程序或资源路径,例如网站地址www.csdn.net/index.html。浏览器通过HTTP协议将GET或POST方法和URI构成请求消息。消息头记录了请求的附加信息,如Accept-Language、Host和Connection,而消息体则存储了表单数据。

GET请求的数据会被直接附加到URI中,这也是为什么GET传输的数据相对较小的原因。POST请求则将数据包装在消息体中,可以传输较大的数据量,如图片或文字描述。

DNS解析是将域名转换为IP地址的过程。浏览器会调用DNS解析器查询DNS服务器,获取目标服务器的IP地址。DNS服务器分为根域、顶级域和二级域,每个域都有对应的DNS记录。客户端通过递归查询逐步找到目标服务器的IP地址。

IP地址由四个8位组成,表示网络和主机号。子网掩码指定了IP地址的网络号和主机号范围,例如255.255.255.0表示24位子网。浏览器通过DNS解析得到服务器IP后,会将其发送到协议栈,完成数据传输。

在实际应用中,应用程序通过Socket库调用gethostbyname函数获取IP地址,制作HTTP请求报文,并使用socket、connect、write、read和close函数进行通信。这些库函数将应用程序的数据包装在协议报文中,传输到目标服务器。

转载地址:http://wtbr.baihongyu.com/

你可能感兴趣的文章
Python requirements.txt的使用方法
查看>>
Python REST(Web 服务)框架的推荐?
查看>>
Python rsa 加密
查看>>
Python RSA操作
查看>>
Python轻松实现统计学中重要的相关性分析
查看>>
Python scrapy 常见问题及解决 【遇到的坑】
查看>>
Python Seborn热图数据的动态更新
查看>>
Python Seborn绘制空白直方图
查看>>
Python Selenium - 获取href值
查看>>
Python Selenium实现自动化测试及Chrome驱动使用!
查看>>
Python Selenium搭建UI自动化测试框架
查看>>
Python Selenium模块详解
查看>>
Python selenium爬取影评生成词云图
查看>>
python selenium自动化测试报告
查看>>
Python selenium自动化测试框架实战 —— 登录测试案例
查看>>
Python Selenium设计模式 —— POM
查看>>
Python Serial:如何使用 read 或 readline 函数一次读取多个字符
查看>>
Python set([]) 如何检查两个对象是否相等?一个对象需要定义哪些方法来自定义它?
查看>>
Python setup.py:数据文件无法复制目录:不存在或不是常规文件
查看>>
Python setuptools sdist:仅安装版本化文件
查看>>