`

HTTP客户端服务端TCP连接内幕

阅读更多



 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
         域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址 的过程。一个域名对应一个IP地址,一个IP地址可以对应多个域名;所以多个域名可以同时被解析到一个IP地址。域名解析需要由专门的域名解析服务器 (DNS)来完成。
        解析过程,比如,一个域名为:***.com,如果要访问网站,就要进行解析,首先在域名注册商那里通过专门的DNS服务器解析到一个WEB服务器的一个 固定IP上:211.214.1.***,然后,通过WEB服务器来接收这个域名,把***.com这个域名映射到这台服务器上。那么,输 入***.com这个域名就可以实现访问网站内容了.即实现了域名解析的全过程;
        人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
        域名解析协议(DNS)用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。DNS是一种c/s的结构,客户机就是用户用于查找一个名字对应的地址,而服务器通常用于为别人提供查询服务。
        步骤1是客户端向服务器发出DNS请求然后DNS服务器向客户端回送IP响应。

HTTP与服务器连接建立详细(本文学习重点)



 
TCP连接建立需要经过“三次握手”的过程:
        1)最初的客户端TCP进程处于“CLOSE”(关闭)状态。当客户端准备发起一次TCP连接,进入“SYN-SEND”状态时,它首先向处于 “LISTEN”(收听)状态的服务器端TCP进程发送第一个“SYN”报文(控制位SYN=1).“SYN”报文包括源端口号和目的端口号,目的端口号 表示客户端打算连接的服务器进程号,以及一些连接参数。
        2)服务器端在受到“SYN”报文之后,如果同意建立连接,则向客户端发送第二个“SYN+ACK”报文(控制位SYN=1,ACK=1).该报文表示对 第一个“SYN”报文请求的确认,同时也给出了“端口”大小,这时服务器进入“SYN-RCVD”状态。
        3)在接收到"SYN+ACK"报文之后,客户端发送第三个“ACK”报文,表示对“SYN+ACK”报文的确认。这时客户端进入 “ESTABLISHED”(已建立连接)状态。服务器端在接收到“ACK”报文之后也进入“ESTABLISHED”(已建立连接)状态。
TCP协议是传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据。HTTP建立在TCP的基础上。

  • 大小: 53.7 KB
  • 大小: 52.9 KB
1
0
分享到:
评论

相关推荐

    ace技术内幕示例代码

    1. **Acceptor和Connector**:这是ACE中最基本的网络通信组件,用于建立客户端和服务端的连接。`ACE_Acceptor`通常用于服务端,监听特定端口,等待客户端连接;`ACE_Connector`则用于客户端,尝试连接到服务端。 2....

    Java2网络协议内幕

    1. **Java Socket编程**:Java通过Socket类提供了面向连接的TCP服务和无连接的UDP服务。Socket是网络通信中的端点,它允许两个程序通过网络交换数据。Socket类和ServerSocket类是Java进行网络通信的基础,它们分别...

    JAVA2网络协议内幕

    客户端和服务端都需要使用这个类来建立连接。TCP提供了面向连接的、全双工的通信服务,它保证数据的传输顺序和完整性。 3. UDP套接字:UDP套接字使用的是无连接的通信方式,通过***.DatagramSocket类实现。UDP不...

    Java2网络协议技术内幕

    Java中的Socket类用于实现TCP连接,ServerSocket则用于监听客户端的连接请求。TCP通过序列化、确认应答、重传机制保证了数据的可靠性。 2. **UDP协议**:UDP(用户数据报协议)是无连接的、不可靠的传输协议,适用...

    ACE技术内幕:深入解析ACE架构设计与实现原理.zip

    ACE采用面向对象的设计,将复杂的网络通信问题抽象为一系列可重用的组件,如Acceptor-Connector模式,用于处理客户端和服务端的连接建立;Reactor模式,用于处理并发事件;以及Proactor模式,用于异步I/O操作。 ...

    Java2网络协议技术内幕(附源码)(PDF)

    这些API是Java进行网络通信的核心,读者将学习如何创建客户端和服务端的连接,发送和接收数据报包,以及如何利用多播实现广播通信。 其次,本书深入探讨了TCP和UDP两种主要的传输层协议。TCP(传输控制协议)提供...

    Java 网络协议源码

    Socket提供了双向的字节流通信,可以用于建立客户端和服务端的连接。ServerSocket类则用于服务器端,监听特定端口的连接请求。当一个客户端Socket连接到ServerSocket时,就会形成一个TCP连接,数据可以通过输入流和...

    Java2网络协议技术内幕(源码).rar

    Socket代表客户端,ServerSocket代表服务端,两者共同构建了网络通信的基本模型。 2. **套接字(Socket)通信**:Socket提供了双向通信通道,包括输入流和输出流,用于数据的发送与接收。理解Socket的工作原理和...

    Perl技术内幕源码 学习perl最好的资料

    这些源码能让你了解如何构建客户端和服务端程序,处理网络请求和响应。 在CGI编程中,Perl的CGI模块使得开发Web应用程序变得简单。源码中会展示如何处理HTTP请求、生成动态HTML、管理用户会话等。 总的来说,"Perl...

    Java 技术内幕.rar

    理解套接字的工作原理,以及如何处理客户端和服务端的交互,是开发分布式应用的基础。 最后,JVM(Java虚拟机)是Java程序的运行平台。理解JVM的内存结构(如堆、栈、方法区)、垃圾回收机制,以及如何进行性能调优...

    深入解析ACE架构设计与实现原理

    以及ACE_Acceptor和ACE_Connector,它们是用于建立客户端和服务端连接的关键类。 示例代码部分将帮助我们更好地理解上述理论知识。通过实际编写和运行ACE程序,我们可以看到如何将这些概念应用到实际项目中。这包括...

    三本C#经典入门书籍

    读者将学习到如何构建客户端和服务端应用程序,理解和实现网络数据传输、异步通信和错误处理。对于那些想要开发网络应用或者理解网络通信机制的开发者来说,这本书是不可或缺的。 "C#.NET开发者手册"可能是一部全面...

    局域网监控系统概要设计说明书.pdf

    - **C/S模式**:客户端(Manager)与服务端(Monitor)结构 - Monitor负责监测主机活动并响应Manager的请求 - Manager接收并显示服务端返回的信息,供管理者查看 4. **功能模块** - 监控主机配置 - 文件系统...

Global site tag (gtag.js) - Google Analytics