网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络?
我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识。说到这呢,有人问了。“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?”
原因是这样的。作为网站开发人员,你所开发的软件产品最终是要在网络上运行的。这就像一个生产商,要生产供给东北地区的产品,而生产商对东北的天气、地理、人文毫无了解。生产商的产品肯定是不可用的,或者低端的!产品质量不好,那是自然的。产品质量好,那算你点儿高。那么作为ASP.NET开发人员,如果一点不懂http协议、不晓得Ajax、甚至根本不了解JavaScript,效果也是一样的。
总之,丰富的知识储备,会为你的软件产品带来更多的品质保障。
当然,我们要了解的主要是HTTP协议,对于这篇文章整理的内容,只做了解即可。目的是对整个知识体系有个大致的概念。算了,坦率的讲吧。本篇文章意义不大,写它的根本原因是我想通过这样一种方式,来回忆自己的网络知识。毕竟曾经考过一个劳什子的网络工程师(等考得那个,我知道没啥用,但刚上大学的时候,以为很厉害。当时费了点心思,全当回忆大学生活了)。当然这里只是概要式的梳理。
关于体系结构
1.OSI、TCP/IP、与五层体系结构
说道网络的体系结构,总共有两个经典的划分方式,分别是OSI七层 和 TCP/IP四层。
1)OSI
OSI的七层协议体系结构、清晰,完整。 但复杂度高,又不实用。
2)TCP/IP
相比的OSI七层的复杂,TCP/IP的四层结构 得到了广泛的应用。
但是从实际角度看,TCP/IP在实际应用中仅使用了上三层。
3)五层体系结构。
TCP/IP 最下层网络接口层,没有什么特别新的具体内容,跟一般的通信链路没有多大差别。
所以在学习的时候采用一种中庸的做法,就是把TCP/IP体系、和OSI体系结合
形成一个、从物理层、数据链路层、网际层、运输层到应用层的五层体系结构。
2.对于五层协议、每层的描述
1)物理层
定义了通信设备的 机械、电气、功能归程特性。(当年就是这么背的,我理解的呢就是这样,“方形的插头、插不进去圆形的口。就是定义这样一个标准吗”)
设备: 集线器 (组成一个碰撞域)
2)数据链路层
建立、维护和释放网络实体间的数据链路,这种数据链路对网络变现为一条无误差的信道。(MAC媒介访问层、LLC逻辑链路层)
主要特性记住三点》 1. 封装成帧
2.透明传输
3.差错检测
设备:网桥、有缓存,接受MAC帧。
3)网络层:
属于通信子网,通过网络连接交换传输层实体放出的数据。它解决的是路由选择,网络拥塞,异构网络互联的问题。(发送的是报文)
IP 网际协议
ARP 地址解析协议
RARP 反向地址解析协议
ICMP 网际控制报文协议
IGMP 网际组管理协议
4)传输层
实现发送端和接收端,端到端的数据分组传送,负责保证实现数据包无差错、无丢失和无冗余的传输。 (服务的访问点为端口)
TCP (传输控制协议) 可靠、面向连接、有应答机制
UDP (用户数据报协议)不可靠、无连接、无应答机制
5)应用层
虽然我们是程序开发人员,但是上面基层的协议说的什么呢?实话说跟我们联系不大。到了应用层才跟我们得工作息息相关。
HTTP 超文本传输协议 这个才是我们需要懂的。
FTP 文件传输协议
DHCP 动态主机配置协议
NFS 网络文件系统
Telnet 远程登录协议
DNS 域名系统
SNMP 简单网络管理协议
需要了解的几个概念
1.URL
这个东西的学名加:统一资源定位符。他表示找到互联网中一个资源的资源位置、访问资源的方法。
通常的结构是这样的
《协议》://《主机》:《端口》/《路径》?请求参数
http下就是这样
http://《主机》:《端口》/《路径》
2.HTTP协议
- 这货的学名叫:超文本传输协议。
顾名思义,http协议定义了浏览器如何向网络服务器请求文档,以及服务器怎样把文档传送给浏览器。 - http协议是请求、响应式的。没有请求就木有响应。
- http是面向文本的,所以报文中的每一个字段都是一些ASCII码串,所以各个字段的长度不确定。
- http报文总共就有两类,请求报文、响应报文。
1)请求报文
2)响应报文 - 无论是请求报文,还是响应报文,都可以划分为三部分。
1)开始行
2)首部行
我的习惯是把上面的的两部分叫,报文头。下面这部分叫报文体。(也不知掉对不对)
3)实际主体 - 具体细节,下篇博文里专写一个关于HTTP协议的浅显研究。
网络基础知识、ASP.NET 核心知识(1)*的更多相关文章
- Cookie详解、ASP.NET核心知识(7)
无状态的http协议 1.回顾http协议 Http协议是请求响应式的,有请求才有响应,是无状态的,不会记得上次和网页“发生了什么”. 关于http协议的这种特点,黑兔在前面的这三篇博文中进行了详细的 ...
- 让页面无刷新的AJAX、ASP.NET核心知识(9)
AJAX简介 1.如果没有AJAX 普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,如果没有ajax,在youku看视频的过程中,就没法提交评论,页面会刷新,视频会被打断. 2.说说AJ ...
- 关于Http协议、ASP.NET 核心知识(2)
简介HTTP (对于http协议的描述我前部分有写,但基于保证文档独立完整性的原则,我再写一遍.反正又不花钱.) 这货的学名叫:超文本传输协议 英文名字:(HTTP,HyperText Transfe ...
- Session详解、ASP.NET核心知识(8)
介绍一下Session 1.作用 Cookie是存在客户端,Session是存在服务器端,目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session). 在本篇博文的姊妹篇 ...
- ASP.NET内核几大对象、ASP.NET核心知识(7)--转载
本文的学习流程是这样安排的. 一个简单的GDI小案例 1.说明 如果你想思考如何生成验证码,那么您第一个要解决的问题,一定是.NET动态生成图片问题. //GDI:.Net程序中进行绘图的一些类. 2 ...
- 写一个简易浏览器、ASP.NET核心知识(3)
前言 先在文章前面说好了,省得大家发现我根本没有这样的头发,duang的一下一堆人骂我. 这篇文章的标题有点大,其实挺low的,我需要在开头解释一下.我这里只想写一个小的控制台,旨在模拟浏览器的htt ...
- ASP.NET内核几大对象、ASP.NET核心知识(6)--转载
这篇博文主要介绍一下几个对象. 1)HttpContext 2)HttpRequest 3)HttpResponse 4)context. Server 5)context.Session HttpC ...
- 一般处理程序、ASP.NET核心知识(5)--转载
初窥 1.新建一个一般处理程序 新建一个一般处理程序 2.看看里头的代码 public class MyHandler : IHttpHandler { public void ProcessRequ ...
- 写一个简易web服务器、ASP.NET核心知识(4)--转载
第一次尝试(V1.0) 1.理论支持 这里主要要说的关于Socket方面的.主要是一个例子,关于Socket如何建立服务端程序的简单的代码. static void Main(string[] arg ...
随机推荐
- php中at @符号的作用使用说明
一次,下载别人的源码来看,看到无数@记号,开始以为是注释:后来发现@后面的语句也是会执行的.纳闷了,这个记号究竟是做什么的呢..... 随着学习的不断深入,总算是明白了.这个记号的作用有点类似于asp ...
- Guava 8-区间
范例 List scores; Iterable belowMedian =Iterables.filter(scores,Range.lessThan(median)); ... Range val ...
- SAR命令
前面已经介绍了 vmstat和top命令的解析及使用,下面我们来学习一个更重要的命令sarsar命令可以通过参数单独查看系统某个局部的使用情况 sar 命令行的常用格式: sar [options] ...
- get/close not same thread Druid 连接池一个设置
我就郁闷了,1000W+数据审核每次总是到一半就出这么个错,仔细找找原来是一个配置项的小问题,removeAbandonedTimeout 这个代表你从连接池取出一个连接多少秒之后你还没还回来,那就强 ...
- MySQL处理数据库和表的常用命令
MySQL处理数据库和表的常用命令 [导读] 学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一 ...
- java cmd 命令
java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令. cmd /c dir 是执行完dir命令后关闭命令窗口. cmd /k dir 是执行完d ...
- Linux安装MySQL的两种方法
转载:http://blog.csdn.net/superchanon/article/details/8546254/ 1. 运行平台:CentOS 6.3 x86_64,基本等同于RH ...
- Arch tty终端使用中文,Fbterm控制台配置
参考: http://www.linuxidc.com/Linux/2011-08/40746p2.htm 安装: # pacman -S fbterm fcitx-fbterm # sudo gpa ...
- Arch Linux 修改主机名称
Hostname Set the hostname to your liking (e.g. arch): # echo myhostname > /etc/hostname Add the s ...
- 转载 radio值获取
选择控件:select ,radio,checkbox之用jquery获取选中值的小结 博客分类: jQuery select下拉框radio单选按钮checkbox多选框jquery获取选中的值 ...
