前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >asp了解

asp了解

作者头像
静心物语313
发布2020-03-24 14:45:04
5.9K0
发布2020-03-24 14:45:04
举报
文章被收录于专栏:静心物语313的Coding

第 1 节: 1-ASP.Net课前说明 1、网站目录一般不建在桌面上,有时候可能会涉及 权限的问题; 2、逻辑代码分两块运行的,一部分运行在服务器端,一部分运行在浏览器端中; 3、使用托控件,不能很好地梳理浏览器和服务器代码的优化。 4、安全性问题不高。 5、ASP.net Webform不会在项目中重度的使用。轻量级的Webform(repetor)还是会用的; 6、学习路线: ASP.net(Core内核)--->Asp.net WebForm--->ASp.mvc(大项目,互联网项目,都是用的这个); 7、本次学习。用Chrome 谷歌浏览器;(没有IE版本的问题)(调试工具好用);

第 2 节: 2-浏览器和服务器的交互 1、注册表单,点击(谷歌浏览器)F12开发者工具。选择Network选项; 2、临时停车牌子,清除信息(清楚信息,只是清除了,浏览器请求的历史记录); 3、状态码:301重定向; 4、先加载Html标签,如果有js,css,图片,就最后加载; 5、选中一个请求的页面,post.请求过程中,可以在Form Data里查看表单数据;切换到Response产看,服务器的响应的内容;

第 3 节: 3-Socket简介和浏览器代码讲解 1、写简单的浏览器(服务器),了解浏览器(服务器)内部做了什么(尤其是对网站的优化,和安全性问题有助于理解); 2、Socket是进行网路编程的类,通过Socket 可以在两台计算机之间进行网络通讯; 3、能够看懂代码。能够修改一些代码 ,就ok, Socket不是本次学习重点; 4、浏览器和网站服务器之间都是Socket网络通讯; 5、向服务器发出指令: GET/index.html HTTP/1.1 (表示请求)(请求的页面)(协议、版本号1.1(最新的是2.0)) 6、Host:127.0.0.1:8080 <主机名><ip地址><端口号> 7、每个服务器软件监听一个端口号,别的软件就不能监听这个端口,发送给这个端口的数据只会被这个服务器软件软件收到; 8、每个指令后回车一次,最后一次的回车表示指令结束; 9、简易浏览器代码思路: 1)new出来一个socket对象,(构造函数,(两个参数))《不是重点》; 2)连接服务器,服务器的ip,端口号;http端口默认80; 3)NetworkStreame也是继承Stream类,只是它的构造函数,接收socket这个对象; 4)Stream实现了Idisposebeabe接口,使用using释放资源; 5)NetworkStream(读写socket通讯数据的流)逐字节的操作类,所以用StreamWrite 这样字节级别的类。来发送指令; 6)socket写完毕,开始读取socket,,,,StreamReader(读取完毕,关闭连接!)

第 4 节: 4-自己写浏览器代码实战

代码语言:javascript
复制
//在VS2010及以下,要用:new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
using System;
using System.Collections.Generic;
using System.IO;//StreamWriter
using System.Linq;
using System.Net;//DnsEndPoint
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace 简易浏览器
{
    class Program
    {
        static void Main(string[] args)
        {
            Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
            socket.Connect(new DnsEndPoint("127.0.0.1", 80));//连接服务器的ip地址,端口号
            //写入套接字
            using (NetworkStream netstream = new NetworkStream(socket))
            using (StreamWriter writer = new StreamWriter(netstream))
            {
                writer.WriteLine("GET /index.html HTTP/1.1");
    //  writer.WriteLine("GET / index.shtml HTTP/1.1");//访问如鹏主页
                writer.WriteLine("Host:127.0.0.1:8080");
    //writer.WriteLine("Host:http://www.rupeng.com");
                writer.WriteLine();//空行表示,指令结束
            }
            //读取套接字
            using (NetworkStream netstream = new NetworkStream(socket))
            using (StreamReader reader = new StreamReader(netstream))
            {
                string line;
                while ((line=reader.ReadLine())!= null)
                {
                    Console.WriteLine(line);
                }
            }
            socket.Disconnect(false);

            Console.ReadKey();
        }
    }
}

执行结果:
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Thu, 28 May 2015 06:07:08 GMT
Accept-Ranges: bytes
ETag: "b4ea487c99d01:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 28 May 2015 06:12:09 GMT
Content-Length: 279
<!Doctype html>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
 <meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<title></title>
<body>
<h1 align="center" font-color:red>??????asp.net?????????</h1>
</body>
</html>

第5节:浏览器是什么?

1、浏览器就是一个Socket网络客户端,主要帮助用户请求网站服务器上的内容,并且把服务器返回的内容渲染(绘制)为图形化内容。

2、通过“开发人员工具”查看:

3、 用户在浏览器输入http://www.rupeng.com/index.shtml

3、1、浏览器向DNS服务器请求www.rupeng.com的IP地址,

4、然后浏览器向rupeng服务器发出Socket请求“GET /index.shtml HTTP/1.1”等,

5、服务器把index.shtml的内容返回给浏览器,

6、浏览器解析HTML内容绘制页面,

7、遇到img则浏览器再次发出Socket请求获得图片内容,然后绘制图片,

8、遇到css、js文件等也同样如此。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档