精华内容
下载资源
问答
  • 我是做手机软件下载,小白站长研究一晚上了,很郁闷! 买了源码删除网站后日期变成1991了,怎么都删不掉,各位大佬能不能帮我看看是什么原因导致的?我的网站www.weidianpc.com如下图

    我是做手机软件下载,小白站长研究一晚上了,很郁闷!
    买了源码删除网站后日期变成1991了,怎么都删不掉,各位大佬能不能帮我看看是什么原因导致的?我的网站www.weidianpc.com如下图打开网站点击手赚资讯,翻到第5页就可以看到这个问题了

    
    
    展开全文
  • HTML文件变成可以动态界面,经常会变成后缀有: 使用 .NET 开发的展示界面后缀是 .aspx 使用java 开发的展示界面后缀是 .jsp 使用php 开发的展示界面后缀是 .php本文主要介绍,使用.net 开发网站右击website ...

    HTML文件变成可以动态界面,经常会变成后缀有:

      使用 .NET 开发的展示界面后缀是 .aspx

      使用java 开发的展示界面后缀是 .jsp

      使用php 开发的展示界面后缀是 .php

    本文主要介绍,使用.net 开发网站

    右击website 选择添加

    9e42a13ccaff3c32a379b046454ba2d0.png

    选择添加web 窗体

    81831bfd2c6483ad708b76052e93b705.png

    起个名字,建议可以看名知其意

    c50112ede9f856aecaebf5609df16efe.png

    主要分为两部分,一个是前端展示的 .aspx 一个是控制展示的源码 .cs

    e6e0f8df3a96ff0ab71e5d719af79596.png

    前端主要部分

    Language 语言,

    AutoEventWireup 在启动时自动运转的文件

    CodeFile 编码文件,后台文件

    inherits字面理解为:继承 表示 这个文件的命名空间

    runat="server" 就相当于服务器控件了,
    运行在服务器端,后台代码获取它的值时可直接控件id.value获取值;不用像Java一样,通过提交的方式传递到服务端

    8b8f3700b69583c1e1dab7e2b46072ea.png

    所以只要将HTML 中的对应部分放到其中就可以了

    后台 .cs 文件

    partial 表示局部的,由于C# 文件的文件名可以与类名可以不一致,那么一个类可能会被拆分成两个,那就要partial在同一个类型的各个部分都使用,然后在编译的时候仍会将各个部分的局部类型合并成一个完整的类。

    方法里面的参数:object sender(sender:发送者):表示触发事件的控件对象,sender参数用于传递指向事件源对象的引用EventArgs e:(EventArgs:事件参数 ):表示事件数据的类的基类,简单来理解就是记录事件传递过来的额外信息。一般用于传递用户点击的位置,键盘按下的键等事件的额外信息

    9942c347095a0e8a4ce1f4a24de58935.png
    展开全文
  • 霍里森码重构-源码

    2021-02-17 11:24:31
    您可以使用这些提交来跟随我的旅程,将他们的混乱变成值得部署的东西。 我是怎么做到的? 我使用了语义html标签,html注释,并整理了CSS。 如果您想访问Horiseon网站,可以通过以下链接进行访问: ://emmerz6949....
  • ConsoleChat可以将浏览器的控制台变成一个全球实时聊天室,可以将开发人员与网站联系起来。 安装 将ConsoleChat脚本插入您的网站,您就可以开始了 < script src = ...
  • ASP.NET CORE 启动过程及源码解读

    千次阅读 2020-03-09 10:43:33
    为什么ASP.NET CORE项目可以在控制台中运行启动后变成了一个网站程序? 现在我这里使用.NETCORE 3.1 最新稳定发布版本来进行以上问题的解析,带大家解决以上问题的疑惑,学习完大家会对ASP.NETCORE 项目会有一个不...

    疑问

    刚刚接触ASP.NET CORE 项目的同学可能会有如下疑问:

        1.  ASP.NET CORE 项目的启动过程是怎么样的?

        2.为什么ASP.NET CORE项目可以在控制台中运行启动后变成了一个网站程序?

    现在我这里使用.NETCORE 3.1 最新稳定发布版本来进行以上问题的解析,带大家解决以上问题的疑惑,学习完大家会对ASP.NETCORE 项目会有一个不一样的理解和领悟.

    启动过程

        刚刚接触ASP.NET core 的同学们估计都会觉得和之前的ASP.NET 设计大不一样,代码风格也有很大的变化,以前的ASP.NET 是全家桶框架模式,里面包含了所有的实现,你用的到的用不到的都集成在里面;然而ASP.NET CORE 框架做了大的改变,以最小化抽象设计,通过扩展方法完成易用性扩展.

        解读过源代码的同学们都可以发现大多api都是最小化单元抽象接口方式进行设计,其他复杂的方法api都是通过扩展方法进行扩展提供,这也是.NET Core 高效易扩展的一大优势原因.

         对于ASP.NET Core应用程序来说,我们要记住非常重要的一点是:其本质上是一个独立的控制台应用,它并不是必需在IIS内部托管且并不需要IIS来启动运行(而这正是ASP.NET Core跨平台的基石)。ASP.NET Core应用程序拥有一个内置的Self-Hosted(自托管)的Web Server(Web服务器),用来处理外部请求。

        不管是托管还是自托管,都离不开Host(宿主)。在ASP.NET Core应用中通过配置并启动一个Host来完成应用程序的启动和其生命周期的管理。而Host的主要的职责就是Web Server的配置和Pilpeline(请求处理管道)的构建。

        我们现在来创建一个ASP.NETCORE WEB 项目 步骤如下

        文件-> 新建 -> 项目 -> 选择ASP.Net Core Web应用程序 -> 选择.NETCORE 3.1 框架 如图:

    创建项目后我们从Program 类中可以看到以下代码:

    public class Program{        public static void Main(string[] args)        {            CreateHostBuilder(args).Build().Run();        }        public static IHostBuilder CreateHostBuilder(string[] args) =>            Host.CreateDefaultBuilder(args)//开启一个默认的通用主机Host建造者                .ConfigureWebHostDefaults(webBuilder =>                {                    webBuilder.UseStartup<Startup>();                });}
    查看以上代码可以发现 Main 方法中代码很简单 ,清晰可见

         CreateHostBuilder(args) :方法创建了一个IHostBuilder 抽象对象,创建过程包含CreateDefaultBuilder(args) :开启创建一个默认的通用宿主机Host建造者,再通过ConfigureWebHostDefaults()方法配置开启默认的Kestrel 为默认的Web服务器并对其进行默认配置,并集成对iis的集成

         Build() :负责创建IHost,看过源代码的同学可以发现Build的过程 会配置各种东西,本身通过管道模式进行了一系列的默认或者自定义的配置以及服务注册的构建(下面会详细讲解)

         Run() :启动Host

    所以,ASP.NET Core应用的启动本质上是启动作为宿主的Host对象,

    其主要涉及到两个关键对象IHostBuilder和IHost,它们的内部实现是ASP.NET Core应用的核心所在。下面我们就结合源码并梳理调用堆栈来一探究竟!

    源代码详细图如下:

    从上图中我们可以看出CreateDefaultBuilder()方法主要干了五件大事:

         UseContentRoot:指定Web host使用的content root(内容根目录),比如Views。默认为当前应用程序根目录。

        ConfigureHostConfiguration :启动时宿主机需要的环境变量等相关,支持命令行

        ConfigureAppConfiguration:设置当前应用程序配置。主要是读取 appsettinggs.json 配置文件、开发环境中配置的UserSecrets、添加环境变量和命令行参数 。

        ConfigureLogging:读取配置文件中的Logging节点,配置日志系统。

        UseDefaultServiceProvider:设置默认的依赖注入容器。

     

    从图中可以看出CreateDefaultBuilder 后调用了ConfigureWebHostDefaults 方法,该方法默认主要做了以下几个事情

       UseStaticWebAssets:静态文件环境的配置启用

       UseKestrel:开启Kestrel为默认的web 服务器.

       ConfigureServices:服务中间件的注册,包含路由的中间件的注册

       UseIIS:对iis 集成的支持

       UseStartup:程序Startup 启动,该启动类中可以注册中间件、扩展第三方中间件,以及相关应用程序配置的处理等等操作

    现在所有的配置都已经配置创建好了,接下来我们来看看Build 方法主要做了哪些不为人知的事情,先来看下源代码

            /// <summary>        /// Run the given actions to initialize the host. This can only be called once.        /// </summary>        /// <returns>An initialized <see cref="IHost"/></returns>        public IHost Build()        {            if (_hostBuilt)            {                throw new InvalidOperationException("Build can only be called once.");            }            _hostBuilt = true;                        BuildHostConfiguration();            CreateHostingEnvironment();            CreateHostBuilderContext();            BuildAppConfiguration();            CreateServiceProvider();            return _appServices.GetRequiredService<IHost>();        }

    从代码中可以发现有一个_hostBuilt 的变量,细心的同学可以发现该变量主要是用于控制是否build 过,所以这里可以大胆猜测只能build 一次该Host;现在看下源代码解析图:

    经过查看源代码得到的执行结构如上,因此我把代码改造成如下结构。

    public class Program{        public static void Main(string[] args)        {            CreateHostBuilder(args).Build().Run();        }        public static IHostBuilder CreateHostBuilder(string[] args) =>            Host.CreateDefaultBuilder(args)//开启一个默认的通用主机Host建造者                .ConfigureAppConfiguration(config => {                    //注册应用程序内所使用的配置文件,比如数据库链接等等                    Console.WriteLine("ConfigureAppConfiguration");                })                .ConfigureServices(service =>                {                    //注册服务中间件等操作                    Console.WriteLine("ConfigureServices");                })                .ConfigureHostConfiguration(builder => {                    //启动时需要的组件配置等,比如监听的端口 url地址等                   Console.WriteLine("ConfigureHostCOnfiguration");                })                .ConfigureWebHostDefaults(webBuilder =>                {                    webBuilder.UseStartup<Startup>();                });}

    Startup 代码如下:​​​​​​​

    public class Startup    {        public Startup(IConfiguration configuration)        {            Configuration = configuration;            Console.WriteLine("Startup ");        }        public IConfiguration Configuration { get; }        // This method gets called by the runtime. Use this method to add services to the container.        public void ConfigureServices(IServiceCollection services)        {            Console.WriteLine("ConfigureServices");            services.AddControllersWithViews();        }        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)        {            Console.WriteLine("Configure");            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            else            {                app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. 
    //You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.                app.UseHsts();            }            app.UseHttpsRedirection();            app.UseStaticFiles();            app.UseRouting();            app.UseAuthorization();            app.UseEndpoints(endpoints =>            {                endpoints.MapControllerRoute(                    name: "default",                    pattern: "{controller=Home}/{action=Index}/{id?}");            });        }    }}

    通过执行发现执行代码顺序正如我们源代码的执行顺序一致,执行顺序如下图:

     

    为何通过控制台命令运行后自动启动了一个网站程序?

        以前ASP.NET web项目是需要搭建在iis 中托管运行,但是ASP.NETCORE 项目可以直接通过命令行进行托管运行,运行后可以直接浏览器打开,你们有没有考虑过为什么?,细心的同学查看项目属性也会发现项目的输出类型也是控制台项目,如图:

    查看这图,有没有发现很神奇,为什么输出类型竟然可以通过控制台命令行进行启动项目呢?

    在上面的源代码分析过程中可以发现启动时会启动一个Kestrel 服务器(ConfigureWebHostDefaults方法中会调用UseKestrel),所以命令后启动一个控制台应用程序后相当于启动了一台web服务器;下面简要的概括下Kestrel 服务器的优势:

    Kestrel:Kestrel 是个精简高效的 HttpServer,以包形式提供,自身不能单独运行。内部封装了对 libuv 的调用,作为I/O底层,屏蔽各系统底层实现差异;有了Kestrel才能真正的实现跨平台.

    好了,想必同学们到这里已经对上面 两个疑惑有了清晰的答案了。

    展开全文
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    3、 源码分析之前,需要认真学习一下Jade的Android的编程(有聊天程序源码下载,都在下载包中),编译源码,需要到google 中申请 map api 的key,不过由于神奇的国度制约的原因,申请连接的网站无法访问,需要通过...
  • 预算300-500W,在上海应该怎么买房? 2.6 学区房 2020年上海幼升小采取摇号政策,公民同招情况下,民办不能自己筛选了,只能靠运气摇号,带来了好的公立学校热大的热度,对学区房有利好的影响。很多热门学区需要...
  • jseckill:Java实现的秒杀网站,基于Spring Boot 2.X。 jseckill:Seckill website implemented with Java, based on Spring Boot 2.X. 谢谢您对本项目的支持 请点击此处进行Star GitHub 地址为...
  • 所以框架层大家一看基本都可以看明白是怎么操作了,很好理解,也是大家都可以接受的,学习起来也不是难题。 4.权限处理 另外安卓权限的处理是很麻烦的,鸿蒙里面 在config.json 里面可以配置全局的权限,被别人使用...
  • 在平时的浏览器访问中我们都知道,输入一个网址变成一个页面展示在我们面前,那这到底是怎么形成的呢,从一个url到页面的展示这个过程中,我们的浏览器到底发生了什么,又怎么会出现展示给我们页面的,这也是常见的...

    前言

    在平时的浏览器访问中我们都知道,输入一个网址变成一个页面展示在我们面前,那这到底是怎么形成的呢,从一个url到页面的展示这个过程中,我们的浏览器到底发生了什么,又怎么会出现展示给我们页面的,这也是常见的面试题。

    简单理解:

    • 发送http请求前进行域名解析(DNS解析),获取相应的ip地址
    • 浏览器向服务器发起连接,建立tcp三次握手
    • 浏览器向服务器发送请求,请求数据包
    • 服务器收到请求,返回数据
    • 浏览器收到http响应,解析html源码
    • 生成DOM,解析css,js
    • 断开连接:TCP 四次挥手

    通过上面我们可以简单的了解下url到展示页面过程中发生了什么,下面我们就来进行详细的解释,为什么要进行这个步骤,又是怎样实现的等。

    一、URL 到底是啥

    在这里插入图片描述

    URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源,俗称网址。

    二、域名解析(DNS)

    在浏览器输入网址后,首先要经过域名解析,因为浏览器并不能直接通过域名找到对应的服务器,而是要通过 IP 地址。大家这里或许会有个疑问----计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。比如 www.hackr.jp。那怎么不一开始就赋予个 IP 地址?这样就可以省去解析麻烦。我们先来了解下什么是 IP 地址

    1. IP 地址

    IP 地址是指互联网协议地址,是 IP Address 的缩写。IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP 地址是一个 32 位的二进制数,比如 127.0.0.1 为本机 IP。

    域名就相当于 IP 地址乔装打扮的伪装者,带着一副面具。它的作用就是便于记忆和沟通的一组服务器的地址。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP 地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。为了解决上述的问题,DNS 服务应运而生。

    2. 什么是域名解析

    DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。DNS 是一个网络服务器,我们的域名解析简单来说就是在 DNS 上记录一条信息记录。

    例如 baidu.com  220.114.23.56(服务器外网IP地址)80(服务器端口号)
    

    3.浏览器如何通过域名去查询 URL 对应的 IP 呢

    • 浏览器缓存:浏览器会按照一定的频率缓存 DNS 记录。
    • 操作系统缓存:如果浏览器缓存中找不到需要的 DNS 记录,那就去操作系统中找。
    • 路由缓存:路由器也有 DNS 缓存。
    • ISP 的 DNS 服务器:ISP 是互联网服务提供商(Internet Service Provider)的简称,ISP 有专门的 DNS 服务器应对 DNS 查询请求。
    • 根服务器:ISP 的 DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS 服务器先问根域名服务器.com 域名服务器的 IP 地址,然后再问.baidu 域名服务器,依次类推)

    4. 小结

    浏览器通过向 DNS 服务器发送域名,DNS 服务器查询到与域名相对应的 IP 地址,然后返回给浏览器,浏览器再将 IP 地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器。接下来介绍向服务器发送 HTTP 请求阶段,HTTP 请求分为三个部分:TCP 三次握手、http 请求响应信息、关闭 TCP 连接

    在这里插入图片描述

    三、TCP 三次握手

    在客户端发送数据之前会发起 TCP 三次握手用以同步客户端和服务端的序列号和确认号,并交换 TCP 窗口大小信息。在这里插入图片描述

    1. TCP 三次握手的过程如下:

    • 客户端发送一个带 SYN=1,Seq=X 的数据包到服务器端口(第一次握手,由浏览器发起,告诉服务器我要发送请求了)
    • 服务器发回一个带 SYN=1, ACK=X+1, Seq=Y 的响应包以示传达确认信息(第二次握手,由服务器发起,告诉浏览器我准备接受了,你赶紧发送吧)
    • 客户端再回传一个带 ACK=Y+1, Seq=Z 的数据包,代表“握手结束”(第三次握手,由浏览器发送,告诉服务器,我马上就发了,准备接受吧)

    2. 为啥需要三次握手

    谢希仁著《计算机网络》中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。

    四、发送 HTTP 请求

    TCP 三次握手结束后,开始发送 HTTP 请求报文。

    请求报文由请求行(request line)、请求头(header)、请求体四个部分组成,如下图所示:在这里插入图片描述

    1. 请求行包含请求方法、URL、协议版本

    • 请求方法包含 8 种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。
    • URL 即请求地址,由 <协议>://<主机>:<端口>/<路径>?<参数> 组成
    • 协议版本即 http 版本号
    POST /chapter17/user.html HTTP/1.1
    

    以上代码中“POST”代表请求方法,“/chapter17/user.html”表示 URL,“HTTP/1.1”代表协议和协议的版本。现在比较流行的是 Http1.1 版本

    2. 请求头包含请求的附加信息,由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。

    请求头部通知服务器有关于客户端请求的信息。它包含许多有关的客户端环境和请求正文的有用信息。其中比如:Host,表示主机名,虚拟主机;Connection,HTTP/1.1 增加的,使用 keepalive,即持久连接,一个连接可以发多个请求;User-Agent,请求发出者,兼容性以及定制化需求。

    3. 请求体,可以承载多个请求参数的数据,包含回车符、换行符和请求数据,并不是所有请求都具有请求数据。

    name=tom&password=1234&realName=tomson
    

    上面代码,承载着 name、password、realName 三个请求参数。

    五、服务器处理请求并返回 HTTP 报文

    1. 服务器

    服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务,比如网页服务、文件下载服务、邮件服务、视频服务。而客户端主要的功能是浏览网页、看视频、听音乐等等,两者截然不同。 每台服务器上都会安装处理请求的应用——web server。常见的 web server 产品有 apache、nginx、IIS 或 Lighttpd 等。

    web server 担任管控的角色,对于不同用户发送的请求,会结合配置文件,把不同请求委托给服务器上处理相应请求的程序进行处理(例如 CGI 脚本,JSP 脚本,servlets,ASP 脚本,服务器端 JavaScript,或者一些其它的服务器端技术等),然后返回后台程序处理产生的结果作为响应。在这里插入图片描述

    2. MVC 后台处理阶段

    后台开发现在有很多框架,但大部分都还是按照 MVC 设计模式进行搭建的。

    MVC 是一个设计模式,将应用程序分成三个核心部件:模型(model)-- 视图(view)–控制器(controller),它们各自处理自己的任务,实现输入、处理和输出的分离。在这里插入图片描述

    1、视图(view)

    它是提供给用户的操作界面,是程序的外壳。

    2、模型(model)

    **模型主要负责数据交互。**在 MVC 的三个部件中,模型拥有最多的处理任务。一个模型能为多个视图提供数据。

    3、控制器(controller)

    **它负责根据用户从"视图层"输入的指令,选取"模型层"中的数据,然后对其进行相应的操作,产生最终结果。**控制器属于管理者角色,从视图接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示模型处理返回的数据。

    这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。

    至于这一阶段发生什么?简而言之,首先浏览器发送过来的请求先经过控制器,控制器进行逻辑处理和请求分发,接着会调用模型,这一阶段模型会获取 redis db 以及 MySQL 的数据,获取数据后将渲染好的页面,响应信息会以响应报文的形式返回给客户端,最后浏览器通过渲染引擎将网页呈现在用户面前。

    3. http 响应报文

    响应报文由响应行(request line)、响应头部(header)、响应主体三个部分组成在这里插入图片描述

    (1) 响应行包含:协议版本,状态码,状态码描述

    状态码规则如下:

    • 1xx:指示信息–表示请求已接收,继续处理。
    • 2xx:成功–表示请求已被成功接收、理解、接受。
    • 3xx:重定向–要完成请求必须进行更进一步的操作。
    • 4xx:客户端错误–请求有语法错误或请求无法实现。
    • 5xx:服务器端错误–服务器未能实现合法的请求。

    (2) 响应头部包含响应报文的附加信息,由 名/值 对组成

    (3) 响应主体包含回车符、换行符和响应返回数据,并不是所有响应报文都有响应数据

    六、浏览器解析渲染页面

    浏览器拿到响应文本 HTML 后,接下来介绍下浏览器渲染机制在这里插入图片描述

    浏览器解析渲染页面分为一下五个步骤:

    • 根据 HTML 解析出 DOM 树
    • 根据 CSS 解析生成 CSS 规则树
    • 结合 DOM 树和 CSS 规则树,生成渲染树
    • 根据渲染树计算每一个节点的信息
    • 根据计算好的信息绘制页面

    1. 根据 HTML 解析 DOM 树

    • 根据 HTML 的内容,将标签按照结构解析成为 DOM 树,DOM 树解析的过程是一个深度优先遍历。即先构建当前节点的所有子节点,再构建下一个兄弟节点。
    • 在读取 HTML 文档,构建 DOM 树的过程中,若遇到 script 标签,则 DOM 树的构建会暂停,直至脚本执行完毕。

    2. 根据 CSS 解析生成 CSS 规则树

    • 解析 CSS 规则树时 js 执行将暂停,直至 CSS 规则树就绪。
    • 浏览器在 CSS 规则树生成之前不会进行渲染。

    3. 结合 DOM 树和 CSS 规则树,生成渲染树

    • DOM 树和 CSS 规则树全部准备好了以后,浏览器才会开始构建渲染树。
    • 精简 CSS 并可以加快 CSS 规则树的构建,从而加快页面相应速度。

    4. 根据渲染树计算每一个节点的信息(布局)

    • 布局:通过渲染树中渲染对象的信息,计算出每一个渲染对象的位置和尺寸
    • 回流:在布局完成后,发现了某个部分发生了变化影响了布局,那就需要倒回去重新渲染。

    5. 根据计算好的信息绘制页面

    • 绘制阶段,系统会遍历呈现树,并调用呈现器的“paint”方法,将呈现器的内容显示在屏幕上。
    • 重绘:某个元素的背景颜色,文字颜色等,不影响元素周围或内部布局的属性,将只会引起浏览器的重绘。
    • 回流:某个元素的尺寸发生了变化,则需重新计算渲染树,重新渲染。

    七、断开连接

    当数据传送完毕,需要断开 tcp 连接,此时发起 tcp 四次挥手在这里插入图片描述

    • 发起方向被动方发送报文,Fin、Ack、Seq,表示已经没有数据传输了。并进入 FIN_WAIT_1 状态。(第一次挥手:由浏览器发起的,发送给服务器,我请求报文发送完了,你准备关闭吧)
    • 被动方发送报文,Ack、Seq,表示同意关闭请求。此时主机发起方进入 FIN_WAIT_2 状态。(第二次挥手:由服务器发起的,告诉浏览器,我请求报文接受完了,我准备关闭了,你也准备吧)
    • 被动方向发起方发送报文段,Fin、Ack、Seq,请求关闭连接。并进入 LAST_ACK 状态。(第三次挥手:由服务器发起,告诉浏览器,我响应报文发送完了,你准备关闭吧)
    • 发起方向被动方发送报文段,Ack、Seq。然后进入等待 TIME_WAIT 状态。被动方收到发起方的报文段以后关闭连接。发起方等待一定时间未收到回复,则正常关闭。(第四次挥手:由浏览器发起,告诉服务器,我响应报文接受完了,我准备关闭了,你也准备吧)在这里插入图片描述
    展开全文
  • 我试了试,还好我的Python基础和调试能力还不错,基本上代码都调试过一遍,很多高大上的 "理论+推导",在我眼中变成了几个 "加减乘除+循环",我想这不就是像我这样的程序员想要的入门教程么? 很多程序员说机器学习 ...
  • 我试了试,还好我的Python基础和调试能力还不错,基本上代码都调试过一遍,很多高大上的 "理论+推导",在我眼中变成了几个 "加减乘除+循环",我想这不就是像我这样的程序员想要的入门教程么? 很多程序员说机器学习 ...
  • GG从发布以来,我每次版本更新都会同步到51aspx源码网站,这次在同步更新GG V3.2版本到51aspx时,出了点小状况:  上传3.2版本几个小时后,我再次上去查看,发现其状态变成了“退回”,于是,我点击“原因”,...
  • 这个方法的意思就是说,假如你从网站上或者我这里得到了一个技术指标的源码,而不是技术指标tn6文件的时候,该怎么样让它变成你电脑里的指标文件,并且使用起来。一,写这篇文章的目的1,一个非常明确的目的,就是我...
  • 2.抽象出Scene的概念,realm gate map location等等,都是一个个scene, 进程变成了容器,可以容纳各种Scene 3.内网消息全部使用Actor消息,一个Scene也是一个actor 4.升级到netcore3.0 5.还有大量更新,等你去挖掘,这是...
  • 在朋友的阿里云共享了它的镜像快照到我的服务器上,win 2008 server r2服务器,里面的IIS已经有了一个小说的源码网站,好像是asp.net网站,解析域名后就正常打开了,但是过半个小时后我再打开就会显示下面的错误(主页...
  • 我试了试,还好我的Python基础和调试能力还不错,基本上代码都调试过一遍,很多高大上的 "理论+推导",在我眼中变成了几个 "加减乘除+循环",我想这不就是像我这样的程序员想要的入门教程么? 很多程序员说机器学习 ...
  • 61种flash 字体特效源文件下载

    千次下载 热门讨论 2006-01-12 10:25:39
    教你怎么做一种立体文字的方法,源码内容是些简单的E 文;(4KB) 46,thematrix.zip 瀑布文字 一种简单,易做,效果又好的文字效果;用做背景相当不错;(10KB) 47,RotatingWords.zip 滚动文字 产生一种纵向的...
  • 教你怎么做一种立体文字的方法,源码内容是些简单的E 文;(4KB) 46,thematrix.zip 瀑布文字 一种简单,易做,效果又好的文字效果;用做背景相当不错;(10KB) 47,RotatingWords.zip 滚动文字 产生一种纵向的旋转...
  • 根据运行结束后收集到的信息和打点时的信息来统计出当前测试用例的对源码的覆盖情况。 一个煎蛋的栗子 以如下的Node.js项目结构为例 <pre><code> . ├── LICENSE ├── README.md ├── index.js ├── node_...
  • 不知道是因为最近kaihui还是怎么的,打开android sdk官方网站特别的慢,想下载最新版本的platform几乎变成不可能完成的任务,不知道为什么Google不像Apache那样在各国设立镜像站。为了预防今后再出现这样的情况,...
  • 网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
  • 源码地址</a>,以及作者的blog欢迎关注,不定期更新中—— 实现步骤 <ul><li>搭建http服务</li><li>通过superagent获取页面html</li><li>使用cheerio提取html相应字段</li><li>使用async第三方库进行...
  • Quartus_II使用教程

    热门讨论 2012-11-26 23:20:43
    Quartus软件主要有网页版订购版,都可以从Altera公司的网站上下载到。网络版相比 订购版只是少了一点小小支持,但是对我们的实验是没有任何影响的。本人使用的是Quartus 9.0订购版,大家可以在网络上查找下Quartus...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一...
  • 二十三种设计模式【PDF版】

    热门讨论 2011-05-30 14:13:49
    著名的 EJB 领域顶尖的专家 Richard Monson-Haefel 在其个人网站:www.EJBNow.com 中极力推荐的 GoF 的《设计模式》,原文 如下: Design Patterns Most developers claim to experience an epiphany reading this ...
  • 就会变成非常麻烦,甚至无法正常运行(一些开源库这块处理也不尽如人意,这也是没有选择它们的一个原因)。这里简单提一下,具体的情况我会放到后续对应的地方再详细说。 <h2>4. 如何...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

网站源码怎么变成网站