ASP.NET网络编程之-HTTP协议
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协议的更多相关文章
- C#网络编程之---TCP协议的同步通信(二)
上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了.现在让我们来看看数据的 ...
- 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...
- C#网络编程之--TCP协议(一)
TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电 ...
- iOS UI高级之网络编程(HTTP协议)
HTTP协议的概念 HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响 ...
- 网络编程(UDP协议-聊天程序)
网络编程中的UDP协议中聊天程序,发送端口,和接受端口. 发送端口(Send): <span style="font-size:18px;">package cn.it ...
- 一、网络编程-UDP传输协议及socket套接字使用
知识点基本介绍:1.网络通信协议一般就是UDP和TCP俩种传输协议,这一章先说UDP,UDP是一种比较简单的传输协议,如qq使用的就是UDP 2.ip:ip就是标记网络中中的一台电脑 ...
- iOS 网络编程(HTTP协议)
HTTP协议的概念HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响应 ...
- JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo
OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...
- 网络编程(基于udp协议的套接字/socketserver模块/进程简介)
一.基于UDP协议的套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就 ...
- JAVA基础知识之网络编程——-基于UDP协议的通信例子
UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramS ...
随机推荐
- codeforces 652C Foe Pairs 水题
题意:给你若干个数对,给你一个序列,保证数对中的数都在序列中 对于这个序列,询问有多少个区间,不包含这些数对 分析:然后把这些数对转化成区间,然后对于这些区间排序,然后扫一遍,记录最靠右的左端点就好 ...
- mongodb c++ driver(2.53)windows编译
编译环境: (1) 下载python2.7, 使用x86_32位,因为scons只有32位安装包可用: (2) 下载scons2.3.0,The current production release ...
- 2015年9月28日JQuery提前预习预热笔记
visual studio下载2010 2010与2008不一样,2008需要添加补丁,采用调用对象.2010可以直接用. JQuery=$ 是函数是方法是对象 念J快儿,念doler 开发人员工具( ...
- sublimelinter-jshinter
--- ocalhost:~ nihao$ sudo npm install jshint -gPassword:/usr/local/bin/jshint -> /usr/local/lib/ ...
- VellCar(barracuda buggy)
这是我的新目标,不过是外国人设计的,youtube上好多相关视频,只是在中国被墙了,FQ能看到一个不一样的世界,附:FQ教程.国外好多玩车的都是选择这辆车,因为它结构紧凑,制作相对简单,但越野性能强悍 ...
- linux设备驱动----利用mdev(udev)自动创建设备文件节点
1.mdev的使用方法和原理: mdev是busybox 自带的一个简化版的udev,适合于嵌入式的应用埸合.其具有使用简单的特点.它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程 ...
- POJ1182食物链 (并查集)
第一反应就是和那个搞基的虫子的题很像(poj2492 http://www.cnblogs.com/wenruo/p/4658874.html),不过是把种类从2变成了3. 错在很白痴的地方,卡了好久 ...
- 【python自动化第十篇:】
复习: 线程与进程的区别: 进程:资源的集合 线程:最小调度单位 进程至少包含一个线程 线程之间的内存是共享的,两个线程操作同一个数据就会修改整个结果(需要mutex加锁来保持数据的一致性),递归锁, ...
- ASP.NET MVC- 布署
IIS6.0 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 设置“Web扩展服务”中的“ASP.NET v4.0.0.303 ...
- linux命令之more
转自:http://www.cnblogs.com/peida/archive/2012/11/02/2750588.html more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示 ...