asp了解

第 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-自己写浏览器代码实战

//在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文件等也同样如此。

 


 

 

posted @ 2015-05-29 15:13  t800  阅读(102)  评论(0编辑  收藏  举报