博客
关于我
计算机网络 一:客户端的应用层
阅读量: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/

你可能感兴趣的文章
php composer
查看>>
reflow和repaint引发的性能问题
查看>>
Reflection反射机制原理、使用场景 及 缺陷
查看>>
php csv 导出
查看>>
php curl 实例+详解
查看>>
php curl_init函数用法(http://blog.sina.com.cn/s/blog_640738130100tsig.html)
查看>>
php curl_multi批量发送http请求
查看>>
php curl请求微信发红包接口出现错误:Peer's Certificate issuer is not recognized.
查看>>
PHP curl请求错误汇总和解决方案
查看>>
php declare(ticks=1)
查看>>
UVA 10474
查看>>
php echo 输出 锘?... 乱码问题
查看>>
PHP empty、isset、isnull的区别
查看>>
ReferenceQueue的使用
查看>>
PHP FastCGI进程管理器PHP-FPM的架构
查看>>
referenceQueue用法
查看>>
Springboot处理跨域的方式(附Demo)
查看>>
php flush()刷新不能输出缓冲的原因分析
查看>>
Referenced classpath provider does not exist: org.maven.ide.eclipse.launchconfig
查看>>