DNS,TCP,IP,HTTP,socket,Servlet概念整理
 
  常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习。如有错误欢迎指正。
 
DNS协议
 
DNS 协议的作用是将域名解析为IP,域名的数量非常多,域名和ip的对应关系也经常变化,所以就需要专门的DNS服务器,用来将域名解析为IP。
windows下,nslookup命令可以查看域名解析的结果。nslookup +网址。
世界各地有很多DNS服务器,也有一些大型公用的DNS服务器可以使用,比如Google的8.8.8.8和国内的114.114.114.114.我们直接访问的DNS服务器叫本地DNS服务器,它会从主DNS服务器获取跟我们请求域名对应的ip,并且将对应关系放到缓存中。
域名也有很多时候不好用,所以导航页被需要。微信小程序和公众号的导航页有待开发。
 
TCP/IP协议
 
IP协议是用来查询地址的,对应着网际互联层,TCP协议是用来规范传输规则的,对应着传输层。ip负责找到地址,TCP负责具体传输。这是两个不同的协议。
TCP在传输之前会进行上次沟通,一般称为“上次握手”,传输数据断开的时候要进行四次沟通,一般称为“四次挥手”。相关序号和标志位:
seq: sequence number的缩写,表示所传输的数据的序号。
ack: acknoledgement number 的缩写,表示确认号。
ACK: 确认为,只有ACK=1的时候ack才起作用。
SYN: 同步位,用于建立连接时同步序号。
FIN: 终止位,用来在数据传输完毕后释放连接。
用于传输层的协议还有UDP,UDP是无连接的,TCP沟通好后才会传输数据,UDP拿到地址立即传输。TCP可靠,但是效率低;UDP效率高常用于视频,语音等对完整性要求不高的的资源。
协议只是一套规则,并不能具体工作,就像程序的接口一样;而socket是TCP/IP协议的一个具体实现。
 
HTTP协议
 
Http是应用层的协议,TCP/IP协议接收数据之后需要通过Http协议来解析才可以使用。发送电报过程中的编码和解码过程就相当于网络传输中的HTTP协议。
  HTTP协议中的报文结构:
  1,请求报文
  方法  URL  http版本  \r\n
  参数1:值
  参数2:值
  ,,,,
  主体
  2,相应报文
  http版本  状态码  简短原因\r\n
  参数1:值
  参数2:值
  ,,,,
  主体
  Response中的状态码:
  1XX: 信息性状态码。
  2XX: 成功状态码。200
  3XX: 重定向状态码。301表示重定向。
  4XX: 客户端错误状态码。404
  5XX: 服务端错误状态码。500表示内部错误。
   
 Socket,Servlet与JavaWeb
 
  Servlet是j2ee标准的一部分,是javaweb的开发标准。Servlet的作用是对接收到的数据进行处理并生成要返回给客户端的结果。
Servlet是对接收到的数据进行处理并生成要返回给客户端的结果,Servlet制定了Java中处理Web请求的标准,我们需要按照标准去做,规范、标准自己是不干活的;要想使用Servlet需要有相应的Servlet容器才行,例如常见的Tomca就是一个Servlet容器t。
 
1,socket:是TCP/IP协议的一个具体实现。Java中的网络通信即是通过Socket实现的,
  Socket分为两大类,ServerSocket和Socket,ServerSocket用于服务端 ,通过accept方法监听请求,监听到请求后返回socket,socket用于具体完成数据传输,客户端直接使用socket发起请求并传输数据。此外,jdk1.4开始,java增加新的IO模式:nio,(New io),极大的提高了io效率,socket也属于IO的一种,Nio提供相应的工具:ServerSocketChannel和socketChannel。分别对应原来的ServerSocket和Socket。Nio:Buffer(数据),Channel(通道),Selector(分拣员);后两者多对多的关系。P29有处理过程。
 
2,HTTP协议是应用层的的协议,TCP/IP协议接收到数据之后,通过http协议解析之后才能使用,类似于电报中的编码和解码。
 
3,Servlet是J2EE标准的一部分,Server+Applet:表示一个服务器应用
  其作用是对接收到的数据进行处理,并生成要返回给客户端的结果,Servlet制定了Java中处理web请求的标准,标准自己时不干活的,所以想要使用Servlet需要有相应的Servlet容器才行,比如我们常见的Tomcat就是一个Servlet;getServletContext方法的返回值ServletContext代表的呃使我们这个应用本身。参数选择保存到Application中时,大多数就是保存在了ServletContext中(其为Application级的,而ServletConfig是Servlet级的)。
Servlet接口中的方法,init方法在容器启东市被容器调用,getServletConfig用于获取ServletConfig,service方法用于具体处理一个请求;getServletInfo方法可以获取一些Servlet相关的信息,如作者等。
GenericServlet是Servlet的默认实现,1,实现ServletConfig接口,2,提供无参init方法,3,提供log方法。
Httpservlet,是用HTTP协议实现的Servlet的基类,写Servlet时直接继承它就可以(DispatchServlet)。Httpservlet主要重写了Service方法。在Service方法中首先将ServletRequest和ServletResponse转换为HttpServletRequest和httpServletResponse。然后根据http请求的不同将请求路由到不同的处理方法。doGet,doPost,doDelete等。HttpServlet,主要将不同的请求方式路由到不同的处理方法,而SpringMVC又将所有的请求合并到了统一的一个方法进行处理。
 
 -----名白

DNS,TCP,IP,HTTP,socket,Servlet概念整理的更多相关文章

  1. ios开发网络知识 TCP,IP,HTTP,SOCKET区别和联系

    TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为:        对应 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--     ...

  2. TCP/IP、SOCKET、HTTP之间的联系与区别

    主要内容: 1.网络的七层协议 2.TCP/IP.SOCKET.HTTP简介 3.TCP连接.HTTP连接.Socket连接的区别 一.网络的七层协议 网络七层由下往上分别为物理层.数据链路层.网络层 ...

  3. Linux内核 TCP/IP、Socket参数调优

    Linux内核 TCP/IP.Socket参数调优 2014-06-06  Harrison....   阅 9611  转 165 转藏到我的图书馆   微信分享:   Doc1: /proc/sy ...

  4. 网络协议HTTP、TCP/IP、Socket

    网络协议HTTP.TCP/IP.Socket 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.  其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的 ...

  5. TCP/IP以及Socket聊天室带类库源码分享

    TCP/IP以及Socket聊天室带类库源码分享 最近遇到个设备,需要去和客户的软件做一个网络通信交互,一般的我们的上位机都是作为客户端来和设备通信的,这次要作为服务端来监听客户端,在这个背景下,我查 ...

  6. TCP/IP以及Socket对象基本

    1 OSI七层模型概念介绍 物理层:数据以比特的方式进行传递,典型的设备是集线器.该层主要规定了设备的电压或者端口等等一些列物理层面上的规定     数据链路层:该层数据以帧的方式进行传递,主要是两个 ...

  7. TCP/IP 和 Socket 的关系

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  8. TCP/IP的Socket编程

    1. TCP/IP.UDP的基本概念 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,他是一个工业标准的协议集, ...

  9. TCP,IP,HTTP,SOCKET区别和联系

    物理层-- 数据链路层-- 传输层--                       TCP协议 会话层-- 我 们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便 ...

随机推荐

  1. git代码回滚

    有时候我们用git提交代码后发生了错误,代码冲突了啊等等,我们需要将代码回到以前的某个版本 git代码回退有两种办法 一.git reset(推荐): 它是将最新的commit删除,用以前的某个版本的 ...

  2. C++之const限定符

    作者:tongqingliu 转载请注明出处: C++之const限定符 const初始化 const的特点: 用const加以限定的变量,无法改变. 由于const对象定义之后就无法改变,所以必须对 ...

  3. AngularJS高级程序设计读书笔记 -- 控制器篇

    作用域组成了一个能够用于在控制器之间形成通信的体系结构. 1. 控制器和作用域的基本原理 控制器就像领域模型与视图之间的纽带, 他给视图提供数据与服务, 并且定义了所需的业务逻辑, 从而将用户行为转换 ...

  4. PHPCMS V9表单向导调用及分页

    参考资料如下:v9_form_tlj为你的表单数据表,`flqh`,`title`,`sj`,`username`,`datetime` 为你表单内的字段,page="$_GET" ...

  5. 再谈AbstractQueuedSynchronizer:独占模式

    关于AbstractQueuedSynchronizer JDK1.5之后引入了并发包java.util.concurrent,大大提高了Java程序的并发性能.关于java.util.concurr ...

  6. 开发中关于IPv6的问题

    问题: 报错信息如下 [root@kube-master iemp]# kubectl logs equipment-139404108-7mc14 -n iemp2017-05-27 05:41:0 ...

  7. IDEA报错处理:Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:8080

    把wildfly的整个软件包更换成新的,配置文件重新配置,JBOSS_HOME环境变量修改成新的,在wildfly-10.1.0.FinalForTest\modules\system\layers\ ...

  8. angular.js小知识总结

    angular-watch.html 代码如下: <script> var app = angular.module('app',[]); app.controller('ctrl',fu ...

  9. vue 基础-->进阶 教程(2): 指令、组件

    第二章 建议学习时间4小时  课程共3章 前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零 ...

  10. 【LeetCode】306. Additive Number

    题目: Additive number is a string whose digits can form additive sequence. A valid additive sequence s ...