经过几天的面试,有很多公司的面试官都会问到是否了解HTTP/TCP/IP协议?

一遇到这个问题,就一脸懵逼,虽然是计算机基层的东西,看来是必须得了解的,回到家之后,就查找了一些资料,整理了一篇博客,简单的了解HTTP/TCP/IP协议,以便给大家分享。客套的不说了,以下进入主题。

HTTP协议

一丶什么是HTTP协议:

  HTTP协议是hypertexttransferprotocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器服务器之间交换数据的过程,客户端连上web服务器后,若想获得web服务器中的某个资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通讯的格式。

二丶HTTP协议的版本有以下两种:

  HTTP协议版本:HTTP/1.0 、HTTP/1.1

三丶HTTP/1.0和1.1的区别

  在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。

  在HTTP1.1协议中,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。

四丶HTTP协议请求:

  1:HTTP协议请求由三部分组成,(请求行,消息报头,请求正文)

  2:请求行:

      请求行以一个方法符号开头,以空格分开,后面跟着请求的URL和协议的版本。

      格式如下:

          Method Request-URL HTTP-Version CRLF

      Method:表示请求方法。

      Request-URL:是一个统一资源标识符。

      HTTP-Version:标识请求的HTTP协议版本。

      CRLF:表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符。)

五丶请求方法:(Ps:所有请求方法均大写)

  GET: 请求获取Request-URL获取标识符的资源。

  POST:在Request-URL获取标识的资源后添加新的数据。

  HEAD:请求获取由Request-URL所标识的资源的响应消息报头。

  PUT:请求服务器存储一个资源,并用Request-URL作为标识。

  DELETE:请求服务器删除,Request-URL所标识的资源。

  TRACE:请求服务器回送收到的请求消息,主要用于测试或诊断。

  CONNECT:把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户。(Ps:这个方法需要使用TCP直接去连接的,所以不适合在网页开发中使用,不过网页开发中也用不到它。)

  OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。

TCP/IP协议

  TCP/IP是一个大集合,所以统称TCP/IP协议。

  TCP/IP分为四个层,每一层分一个职责,那个层除了问题直接维护那个层即可。

四层分为:

  1:链路层

  2:网络层

  3:传输层

  4:应用层

链路层的职责:

  用来处理连接网络的硬件部分,包括控制操作系统硬件的设备驱动,NIC(Network.Interface.Card,网络适配器,既网卡)光纤等网络可见部分(还包括连接器等一切传输媒介),硬件上的范畴均在链路层的作用范围之内。

网络层的职责:

  网络层用来处理在网络上流动的数据包,数据包是网络传输的最小单元,该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方,与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

传输层的职责:

  TCP(Transmission Control Protocol 传输控制协议)

  UDP(User Data Protaol 用户数据协议)

应用层的职责:

  FTP(File Transfer Protocol 文件传输协议)

  DNS(Domain Name System 域名系统Http协议)

TCP/IP通信数据流:(PS:下图)

HTTP关系密切的协议:IP、TCP和DNS

IP协议:

  (Internet Protocol)这里的IP不是指的我们通常所说的:192.168.1.1,这个IP指的是一种协议,而后边的数字值是IP地址。

TCP协议:

  如果说IP协议是我们找到对方的详细地址,那么TCP协议就是把安全的东西带给对方,各有分工,互不冲突。

DNS:

  DNS(Domain names System)和HTTP协议一样处于应用层的服务,提供域名到IP之间的解析服务。

各种协议的作用:

  HTTP协议职责:

    生成针对目标,Web服务器的HTTP请求报文。

  TCP协议职责:

    为了方便通信,将HTTP请求报文分割成报文段,按序号分多个报文段,把每个报文段可靠的传给对方。

  IP协议的职责:

    搜索对方的地址,一边中转,一边发送。

简单聊聊HTTP/TCP/IP协议的更多相关文章

  1. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  2. socket、tcp/ip协议、udp协议

    socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...

  3. HTTP协议—— 简单认识TCP/IP协议

    大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际工作中这些东西用不到.高楼大厦,起于平川.不积跬步,无以至千里,不积小流,无以成江海.我现 ...

  4. TCP/IP协议简单介绍

    TCP/IP协议族总共分为四层,分别为:          应用层:应用层协议有Telnet(远程登入协议).FTP(文件传输协议).SMTP(简单邮件传送协议).SNMP(简单网络管理协议).HTT ...

  5. Tcp/Ip协议族简单解读及网络数据包/报/帧数据格式及封装及解包;

    http://www.creseek.cn/products-install/install_on_bsd_linux/ 中文检索 离线cloudera ecosystem components: h ...

  6. 【转】HTTP协议—— 简单认识TCP/IP协议

    转自:www.cnblogs.com/roverliang/p/5176456.html 大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际 ...

  7. 简单认识TCP/IP协议

    HTTP协议—— 简单认识TCP/IP协议 本文转自: https://www.cnblogs.com/roverliang/p/5176456.html   大学没读计算机专业,所以很多的专业知识都 ...

  8. HTTP协议—— 简单认识TCP/IP协议(转载)

    原文地址(http://www.cnblogs.com/roverliang/p/5176456.html) 1.什么是TCP/IP  如果要了解一个人,可以从他归属的集体聊起来.我们的HTTP协议就 ...

  9. 简单理解TCP/IP协议

    一.什么是TCP/IP TCP/IP是一个协议族,是因为TCP/IP协议包括TCP.IP.UDP.ICMP.RIP.TELNETFTP.SMTP.ARP.TFTP等许多协议,这些协议一起称为TCP/I ...

随机推荐

  1. php sprintf函数

    定义和用法 sprintf() 函数把格式化的字符串写写入一个变量中.sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需.规定插 ...

  2. 7 款华丽的 HTML5 Loading 动画特效

    我们在进行大数据的传输或者复杂操作的等待时,最好能有一个Loading等待的小动画提示用户.本文将为大家分享一些超华丽的基于HTML5的Loading加载动画特效,希望你会喜欢. 1.HTML5 Ca ...

  3. iPhone 屏幕分辨率

    5S     640 x 1136 5       640 x 1136 4s     640 x 960 4       640 x 960 3gs   320 x 480

  4. 【angularjs】【学习心得】路由继续研究篇

    原文:http://www.imooc.com/wenda/detail/236998 其实路由的功能是比较复杂的,我们实际应用中页面的状态也是非常多的,上面简单的路由是肯定不能满足我们的需求的,所以 ...

  5. BNU Online Judge-34776-What does the fox say?

    题目链接 http://www.bnuoj.com/bnuoj/problem_show.php?pid=34776 题意: fox 的叫声 例如测试用例 输入 toot woof wa ow ow ...

  6. 导入礼包时,遇到file_get_contents读取的文本,去除空格、换行等的方法

    解决方法:正则替换: 代码:$gift_code_str = preg_replace('/((\s)*(\n)+(\s)*) /i ',',',file_get_contents($gift_cod ...

  7. IE和FF的差异

    ie和ff的差异   1. document.form.item 问题 1)现有问题: 现有代码中存在许多 document.formName.item("itemName") 这 ...

  8. Spring之循环依赖

    转:http://my.oschina.net/tryUcatchUfinallyU/blog/287936 概述 如何检测循环依赖 循环依赖如何解决 Spring如何解决循环依赖 主要的几个缓存 主 ...

  9. 在VMWare虚拟机中安装Ubuntu 16.04.1 LTS

    一.需要的准备 安装好VMWare虚拟机(傻瓜式安装,一直next就可以,请支持正版),将Ubuntu的系统镜像下载好,目前最新的LTS版本为16.04.1. 我把虚拟机和Ubuntu镜像传到了百度云 ...

  10. 自己开发轻量级ORM(一)

    在开发ORM之前,先简单的介绍下ORM的基本概念. 对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的 ...