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. getElementById和querySelector方法的区别

    "querySelector 属于 W3C 中的 Selectors API 规范 .而 getElementsBy 系列则属于 W3C 的 DOM 规范" 1.区别 getXXX ...

  2. angular指令ng-class巧用

    什么是ng-class ng-class最大的妙用就是可以根据你的逻辑表达式.来添加或移除对应的class ng-class是angular.js里面内置的一个指令. 项目中,有时候,我们需要根据需求 ...

  3. Mac 上Python多版本切换

    Mac上自带了Python2.x的版本,有时需要使用Python3.x版本做开发,但不能删了Python2.x,可能引起系统不稳定,那么就需要安装多个版本的Python. 1.安装Python3.x版 ...

  4. 安装npm及cnpm(Windows)

    [工具官网] Node.js : http://nodejs.cn/ 淘宝NPM: https://npm.taobao.org/ [安装步骤] 一.安装node.js 1.前往node.js官网下载 ...

  5. # ? & 号在url中的的作用

    1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变 ...

  6. Spring boot 1: 使用IDEA创建Spring boot项目

    项目用到的环境: Windows 10 JDK8 IntelliJ IDEA 2017.1.3 Apache Tomcat 8 Maven 3.3.3 使用IDEA新建spring boot项目 新建 ...

  7. 集成python双版本详解

    最近要准备学习Python,由于版本上的差异,不知道要学哪个,现在好多东西都是基于python2基础的,但是python2在2020年左右就可能停止了,所以干脆决定两个都装上吧!   首先上官网上下载 ...

  8. 可能是最详细的 Hexo + GitHub Pages 搭建博客的教程

    前言:博主目前大三,Web 前端爱好者.写博客的好处,不是为了写而写,而是一个记录思想的过程.不要考虑它能带给你什么,而是你自己从中收获了什么. 最近刚好有空,于是就参照网上的各种教程,搭建了一个博客 ...

  9. 【Netty】TCP粘包和拆包

    一.前言 前面已经基本上讲解完了Netty的主要内容,现在来学习Netty中的一些可能存在的问题,如TCP粘包和拆包. 二.粘包和拆包 对于TCP协议而言,当底层发送消息和接受消息时,都需要考虑TCP ...

  10. 【LeetCode】144. Binary Tree Preorder Traversal

    题目: Given a binary tree, return the preorder traversal of its nodes' values. For example:Given binar ...