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. [转]ASP.NET MVC 入门2、项目的目录结构与核心的DLL

    我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. ...

  2. [codevs1557]热浪

    本题地址:http://www.luogu.org/problem/show?pid=1339 http://codevs.cn/problem/1557/ http://www.tyvj.cn/p/ ...

  3. 转(NLP必读)

    如果你刚接触自然语言处理并对她感兴趣,最好读几本这方面的书籍,除了能让你知道自然语言处理各个领域是干什么的外,还能培养一下NLP的感觉.以下四本书是我读研期间阅读和接触过的,如果您还有好书推荐,欢迎补 ...

  4. Java笔记(二十三)……Map集合

    Map接口 Map<K,V> 该集合存储的是键值对,成对往集合里存,而且要保证键的唯一性 常用方法 添加 Vput(K key, V value) voidputAll(Map<? ...

  5. bzoj 2281 [Sdoi2011]黑白棋(博弈+组合计数)

    黑白棋(game) [问题描述] 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色 ...

  6. vijosP1447 开关灯泡

    vijosP1447 开关灯泡 链接:https://vijos.org/p/1447 [思路] 数学+高精度. 分析题目:题中有言,i时刻将其所有倍数的灯熄灭,由此得知一个数有多少个倍数就会被操作多 ...

  7. linkscrpit

    一 section是什么? 好吧,我们需要解释一下平时编译链接生成的二进制可执行程序(比如说ELF,EXE也行),so或者dll,内核(非压缩的,参加本系列第一节内容.vmlinux),或者ko是怎么 ...

  8. HW5.15

    public class Solution { public static void main(String[] args) { System.out.printf("%10s\t%10s\ ...

  9. jsp 相关特性

    下面要注意一个问题,“只要浏览器关闭,session就消失”,那么这个论断是否正确呢?对于session除非程序通知服务器删除一个 session,否则服务器会一直保留,程序一般都是在用户做log o ...

  10. POJ3107--Godfather(树的重心)

    vector建图被卡了..改为链式前向星500ms过的..差了四倍多?... 表示不太会用链表建图啊..自己试着写的,没看模板..嗯..果然错了..落了一句话orz 树的重心就是找到一个树中一个点,其 ...