mindong 发表于 2015-8-12 11:00:58

通过一个小程序,说明IIS不神秘

  构想,这个只是构想而已:自己做一个IIS。
  IIS是什么呢?一个霸占者80或者443端口的程序。
  所有对于80端口的请求,不管是GET还是POST或者其他符合HTTP1.1的东西,都交给它来处理了。
  通过浏览器,我们请求一个页面,然后,我们的请求就被它获得了。我们看看,它拿到的HTTP请求数据头是什么东西。
  新建一个VBNET的控制台程序,我们也来霸占一个端口 13000



Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic
Module Module1
    Public Sub Main()
      Dim server As TcpListener
      server = Nothing
      Try
            ' Set the TcpListener on port 13000.
            Dim port As Int32 = 13000
            Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
            server = New TcpListener(localAddr, port)
            ' Start listening for client requests.
            server.Start()
            ' Buffer for reading data
            Dim bytes(1024) As Byte
            Dim data As String = Nothing
            ' Enter the listening loop.
            While True
                Console.Write("Waiting for a connection... ")
                ' Perform a blocking call to accept requests.
                ' You could also user server.AcceptSocket() here.
                Dim client As TcpClient = server.AcceptTcpClient()
                Console.WriteLine("Connected!")
                data = Nothing
                ' Get a stream object for reading and writing
                Dim stream As NetworkStream = client.GetStream()
                Dim i As Int32
                ' Loop to receive all the data sent by the client.
                i = stream.Read(bytes, 0, bytes.Length)
                While (i <> 0)
                  ' Translate data bytes to a ASCII string.
                  data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                  Console.WriteLine("Received: {0}", data)
                  ' Process the data sent by the client.
                  data = data.ToUpper()
                  Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
                  ' Send back a response.
                  stream.Write(msg, 0, msg.Length)
                  Console.WriteLine("Sent: {0}", data)
                  i = stream.Read(bytes, 0, bytes.Length)
                End While
                ' Shutdown and end connection
                client.Close()
            End While
      Catch e As SocketException
            Console.WriteLine("SocketException: {0}", e)
      Finally
            server.Stop()
      End Try
      Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
      Console.Read()
    End Sub 'Main
End Module  启动这个程序,然后找个浏览器,在地址栏输入
http://localhost:13000/你的浏览器什么现在都没有显示【过一会改一下代码就会好的,别急】。

  看看控制台输出了什么。前面一半是截获到的浏览器发出的请求。后面一半是我们返回给浏览器的东西【就是把请求转为大写,当然浏览器不知道怎么办了】。这个请求的HTTP数据头,网上资料一大把。
  
http://www.iyunv.com/TextEditor/archive/2011/07/01/data:image/png;base64,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
  OK,现在我们修改一下程序,还给浏览器一些它想要的东西,就是HTTP返回的数据头。


1                     ' Process the data sent by the client.
2                     data = "HTTP/1.1 200 OK" & vbCrLf
3                     data += "Content-Length: 37" & vbCrLf & vbCrLf
4                     data += "<HTML><BODY>Hello World</BODY></HTML>"  第二行,我们返回200,表示请求处理成功
  第三行,我们告诉浏览器正式数据的长度,并且加入一个空行,表示数据头和数据的区分。
  第四行,就是我们的HTML了。
  重复运行一下程序:再浏览器里面输入
  
http://localhost:13000/http://www.iyunv.com/TextEditor/archive/2011/07/01/data:image/png;base64,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
  现在就有HelloWorld了吧。
  其实IIS干的事情就和这个小程序差不多。霸占80端口,等着请求(Request,GET/POST),请求来了,解析一下,找个合适的同志来处理请求(ASPNET),处理好的请求的结果(response),还给浏览器。

  各位看了这个例子之后,就知道IIS做的事情,也不是很神秘吧。

  
  实际上IIS还要管理Session(可能通过Cookies来实现)调度任务 等等。不过机理还是围绕着HTTP1.1协议来展开的。希望大家知道IIS的大概工作原理,不要觉得IIS是一个小黑屋。输入一个网址到浏览器,获得一个HTML的页面,其实很简单。
页: [1]
查看完整版本: 通过一个小程序,说明IIS不神秘