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. [转]用C#实现的条形码和二维码编码解码器

    条形码的标准: 条形码的标准有ENA条形码.UPC条形码.二五条形码.交叉二五条形码.库德巴条形码.三九条形码和128条形码等,而商品上最常使用的就是EAN商品条形码.EAN商品条形码亦称通用商品条形 ...

  2. Warning: Function created with compilation errors!

    解决方案: sqlplus / as sysdba grant execute on UTL_I18N to scott; grant execute on DBMS_CRYPTO to scott;

  3. Unity 时间缩放状态下的特效播放

    时间缩放状态下,比如 Time.timeScale 缩小为 0 或者 0.000001 等极小值时,若想将特效的播放速度放大相同的倍数,即修改 ParticleSystem.playbackSpeed ...

  4. Strom的安装及使用

    在使用storm之前,首先看zookeeper是否安装好 单机版 1.在node1上修改配置文件conf下的storm.yaml文件

  5. HDU4745 - Two Rabbits(区间DP)

    题目大意 给出一个长度为n的环状序列,两只兔子各自从一个点出发,一个顺时针跳,一个逆时针跳,每个时刻都要求两只兔子所在的数字是相同的,兔子最多跳一个圈~~~问兔子们最多能跳多少次 题解 一个逆时针跳, ...

  6. ssl error rx record too long

  7. glance image cache

    The Glance Image Cache The Glance API server may be configured to have an optional local image cache ...

  8. [转]JQuery判断浏览器类型版本1.9和2.0之后的区别

    转至:http://zhidao.baidu.com/link?url=Nzk2aSxBKRZKYg9Evqn8hLwMyXTI-4jza-zCAZq4Vd6hWCOHIvuBX6yj8hzDYDrf ...

  9. Centos下安装FTP并进行虚拟用户访问方式配置

    1. 安装认证所需包 [root@localhost]#yum install pam* [root@localhost]#yum install db4* 首先安装PAM(用于用户认证)和DB4(用 ...

  10. PowerShell优化和性能测试

    measure-command -expression {$null = "abc"}  效率高于 {"abc" |out-null } foreach {$p ...