HTTP协议由来已久,最近复习到它,好记性不如烂笔头,在此留下自己的总结,算是为后面再要看时用吧。HTTP协议是一个在B/S架构中约束客户端(浏览器)和服务端(比较常见的是就是IIS服务器,关于IIS服务器的配置,这里就不再讲了,度娘那里一搜一大把。呵呵)2者进行通信的协议;打个比方,相当于2个人要交流,我们要么都用汉语、要么都用英语,语言不通则会产生沟通障碍。

HTTP协议规定浏览器要跟IIS服务器进行交互,首先要将请求的内容封装成HTTP请求头(这些是浏览器自动完成的,当我们在地址栏键入一个具体地址的时候,这个过程就开始了;对于第一次访问的网站首先会到域名解析服务器中找与域名对应的IP地址,再交给浏览器,由浏览器重新访问指定IP的服务器,对于不是第一次访问的网站,浏览器中会有缓存,就直接从缓存中拿到与之对应的IP,然后进行访问),通过网络通信Socket将请求头发送到服务器,服务器拿到请求后进行解析,然后返回响应(具体页面),浏览器在拿到响应报文后,解析它,然后展示具体页面。这就是B/S架构中浏览器和服务器通信的过程,下面是截图。

我们首先在计算机的磁盘下新建一个网页,如图:

  

这个页面很简单,就是在body元素里放了一个“shit”字符罢了。然后打开“Internet 信息服务”(我的机器是XP,所以IIS对应版本是5.1),在“默认网站”下右击,依次点击“新建→虚拟目录”,打开创建向导。输入一个别名“test”

继续下一步,在“网站内容目录”中,点击“浏览”,选择刚才新建的网页所在的目录。继续下一步。如图:

记得勾选“浏览”,继续下一步,那么这个a.html就在IIS上部署好了。我们配置下端口什么的。在“默认网站”上右击“属性”,如图:

配置好”描述“、”IP地址“和”端口“后,我们就可以浏览了。

在地址栏输入”http://192.168.1.9:8086/test/a.html“,即可看到网页内容。

下面我们来看看浏览器发送的请求头,当在地址栏输入”http://192.168.1.9:8086/test/a.html“的时候,按下“F12”,再到地址栏回车。(我以Google Chrome浏览器为例)

注意上图中还有个地方“Connection:keep-alive”这个表示在浏览器和服务器间建立一个长连接,因为网页中有图片、CSS、JS等内容,浏览器在拿到网页时解析过程中要这些东西,如果再重新连接,是相当耗时的,所以服务器端保持着一个长连接,浏览器要上述内容时,直接走连接管道即可,无需再次建立连接(这是HTTP1.1才有的),响应体:

    下面是总结,由此可以看出在浏览器和服务器通信的过程中,客户端(浏览器)做了2件事儿:在用户输入具体地址时,将用户的请求地址封装成HTTP请求发送到服务端;拿到服务端的响应报文,进行解析(执行JS文件,渲染CSS样式),最终展示成一个具体页面。服务端(IIS)拿到客户端的请求报文,解析执行,返回相应具体页面。中间还说了下怎么发布一个具体网页的过程。

ASP.NET网络编程之-HTTP协议的更多相关文章

  1. C#网络编程之---TCP协议的同步通信(二)

    上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了.现在让我们来看看数据的 ...

  2. 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

    Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...

  3. C#网络编程之--TCP协议(一)

    TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电 ...

  4. iOS UI高级之网络编程(HTTP协议)

    HTTP协议的概念 HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响 ...

  5. 网络编程(UDP协议-聊天程序)

    网络编程中的UDP协议中聊天程序,发送端口,和接受端口. 发送端口(Send): <span style="font-size:18px;">package cn.it ...

  6. 一、网络编程-UDP传输协议及socket套接字使用

    知识点基本介绍:1.网络通信协议一般就是UDP和TCP俩种传输协议,这一章先说UDP,UDP是一种比较简单的传输协议,如qq使用的就是UDP          2.ip:ip就是标记网络中中的一台电脑 ...

  7. iOS 网络编程(HTTP协议)

    HTTP协议的概念HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响应 ...

  8. JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo

    OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...

  9. 网络编程(基于udp协议的套接字/socketserver模块/进程简介)

    一.基于UDP协议的套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就 ...

  10. JAVA基础知识之网络编程——-基于UDP协议的通信例子

    UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramS ...

随机推荐

  1. 【原】Arrays.binarySearch() 的用法

    Arrays.binarySearch() 的用法 1.binarySearch(Object[] a, Object key) Searches the specified array for th ...

  2. POJ1947 - Rebuilding Roads(树形DP)

    题目大意 给定一棵n个结点的树,问最少需要删除多少条边使得某棵子树的结点个数为p 题解 很经典的树形DP~~~直接上方程吧 dp[u][j]=min(dp[u][j],dp[u][j-k]+dp[v] ...

  3. 使用 AppFuse 的七个理由

    mvn -e  archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfus ...

  4. Dublin Core

    DC(Dublin Core) 是数字图书馆中使用的一组简单的包括15个“核心元素”的元数据元素集合,主要用于描述数字对象.馆藏管理和元数据交换. 这15项元数据不仅适用于电子文献目录,也适用于各类电 ...

  5. Hyper-V性能监控_CPU

    Hyper-V性能监控: 物理CPU: \Hyper-V Hypervisor Logical Processor(*)\%Total Run Time %Total Run Time :处理器处理来 ...

  6. 阿里云ONS而微软Azure Service Bus体系结构和功能比较

    阿里云ONS而微软Azure Service bus体系结构和功能比较 版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping.谢谢! 阿里云的开放消息服务: ...

  7. 标准I/O库之读和写流

    一旦打开了流,则可在三种不同类型的非格式化I/O中进行选择,对其进行读.写操作: (1)每次一个字符的I/O.一次读或写一个字符,如果流是带缓冲的,则标准I/O会处理所有缓冲. (2)每次一行的I/O ...

  8. MVC架构杂谈

    来源:伯乐在线专栏作者 - 林欣达 链接:http://ios.jobbole.com/86895/ 点击 → 了解如何加入专栏作者 前言 MVC是软件工程中的一种软件架构模式,它把软件系统分为三个基 ...

  9. Java synchronized 总结

    在Java开发的时候经常会用到关键字synchronized来对代码进行同步,在使用的过程中,对于synchronized确不是很熟悉,最近在看Spring源码时,发现有不少地方都用到同步,因此,趁此 ...

  10. web.xml配置文件 taglib

      web.xml的内容如下: <?xml version="1.0" encoding="UTF-8"?><web-app version= ...