TCP/IP 是互联网相关的各类协议族的总称,并且进行分层,分为应用层,传输层,网络层,数据链路层这四层协议,分层的好处,是便于后期的优化与改进,扩展性好
应用层:主要为客户提供应用服务,
                比如:FTP(File Transfer Protocol 文件传输协议),
                           DNS(Domain Name System 域名解析系统)
                           HTTP
传输层:主要是服务器之间数据的传输
                 比如:TCP(Transmission Control Protocol 传输控制协议)
                            UDP(User Data Protocol 用户数据协议)
网络层:处理在网络中的数据包,数据包是网络传输最小的数据单位,决定使用怎样的传输路线进行传输 可能中间设计多个计算机,要决定怎么进行传输,要怎样进行中转
              比如:IP(Internet Protocol)协议
链路层:数据链路层,网络接口层,主要用来连接网络的硬件部分,操作系统啊,网卡啊,光纤啊等
 
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。这种把数据信息包装起来的做法称为封装(encapsulate)

IP协议:IP协议的作用就是保证数据包的传输,在进行传输的时候,依赖IP地址与MAC(Media Access Control Address)地址。
MAC地址:指的是网卡所属的固定地址,IP地址与MAC地址进行配对,一般MAC地址不会进行更换在进行网络中进行传输的时候,可能会涉及多台计算器和网络中转,在中转的时候会利用MAC地址进行转换下一个中转目标,使用的协议是ARP协议。
ARP协议:是进行解析地址的协议,可以通过IP找到对应的MAC。
这种利用ARP协议通过IP地址,进行解析到MAC地址,然后进行中转传输数据,最终跟对方服务器进行通信的机制,可以看成是路由选择。
 
 

 
TCP协议:TCP协议是位于传输层的协议,在进行数据的传输的时候,为了更好地发送数据,会将打的数据进行切割成小的数据包,数据包是以报文段为单位的,并有三次握手,进行保证传输的安全性,第一次会有SYN 标记,接收端会发送一个SYN+ACK的标记返回,然后客户端回传一个ACK标记的数据,在进行接收的时候又会对数据包进行重组
 
 对于HTTP请求方式有如下:
  Get:获取资源
  Post:传输实体
  Put:传输文件
  Head: 获取报文首部,不返回报文主体,用于确认URI的    有效期与资源更新的 日期
  Delete:删除文件
  Options:询问支持的方法
  Trace:追踪路径,请求经过了哪些操作
  Connect:与代理服务器进行连接点时候建立隧道,实现用隧道进行TCP通信
 
HTTP/1.0 和 HTTP/1.1 支持的方法:
 

HTTP对于服务端连接的问题与优化:

1,Http是无状态的,优点是:可以减少服务器的内存与CPU的开销
       解决方案:为了记住通讯,加上了cookie与Session
2,Http每一次通信都会创建于关闭TCP
       解决方案:    保持会话进行持久连接,keep-alive,只要任意一端没有提出断开,就继续保持连接
      :持久连接旨在建立 1 次 TCP 连接后进行多次请求和响应的交互
3,一次请求必须等待响应才能进行二次请求
      解决方案:在持久连接的接触上,可以实现管线化方式发送,可以不用等待响应,直接发送请求
 
 
 
                                                           
 
 
 
 
 

网络基础1_TCP和HTTP的更多相关文章

  1. 前端学HTTP之网络基础

    × 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...

  2. 开发人员必读openstack网络基础

    云计算中的网络非常复杂,需要对网络的基础理论有一定的认识和了解,转载网上针对openstack中涉及到网络概念的文章 开发人员必读openstack网络基础1:什么是L2.L3 开发人员必读opens ...

  3. iOS网络基础知识

    iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...

  4. 网络基础:NetBIOS

    网络基础小补. 利用 NetBIOS 名称与其他计算机通信 网络中的计算机之间必须知道IP地址后才能相互通信.但对人来说IP难以记忆,NetBIOS计算机名称比较容易记忆.当计算机使用 NetBIOS ...

  5. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  6. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...

  7. Java 网络编程(一) 网络基础知识

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...

  8. Linux网络基础配置

    这是看itercast视频的笔记 Linux网络基础配置 以太网连接 在Linux中,以太网接口被命令为:eth0, eth1等, 0,1代表网卡编号 通过lspci命令可以查看网上硬件信息(如果是u ...

  9. Linux网络服务01——Linux网络基础设置

    Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...

随机推荐

  1. git提交忽略文件或文件夹

    在项目根目录下面 添加 .gitignore文件 文件中每一行表示需要忽略的文件的正则表达式. .gitignore文件过滤有两种模式,开放模式和保守模式 1. 开放模式负责设置过滤哪些文件和文件夹 ...

  2. neutron openvswitch + vxlan 通讯

  3. Ultra-QuickSort (POJ 2299)树状数组+离散化

    题目链接 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm ...

  4. Storm Trident详解

    Trident是基于Storm进行实时留处理的高级抽象,提供了对实时流4的聚集,投影,过滤等操作,从而大大减少了开发Storm程序的工作量.Trident还提供了针对数据库或则其他持久化存储的有状态的 ...

  5. call、apply、bind的异同

    一.call.apply.bind的异同 JavaScript中函数可以通过3种方法改变自己的this指向,它们是call.apply.bind.它们3个非常相似,但是也有区别.下面表格可以很直观看出 ...

  6. MySQL大量线程处于Opening tables的问题分析

    [作者] 王栋:携程技术保障中心数据库专家,对数据库疑难问题的排查和数据库自动化智能化运维工具的开发有强烈的兴趣. [问题描述] 最近有一台MySQL5.6.21的服务器,在应用发布后,并发线程Thr ...

  7. 2019 rode of my LeetCode

    基于自己的算法实操水平如此之菜,开始开启leetcode狂刷之路! 2019先定个小目标100题. 2018年经历了辞职到考研失利,我觉得这大概是一生中最低谷的时候了吧. 2019年收拾心情重新开始好 ...

  8. Matlab 基础

    命令行(Command Line) 1. help  格式:help  命令 2. cd 配合 Tab 使用 pwd: print current working directory,打印当前工作路径 ...

  9. linux centos7 防火墙及端口开放相关命令

    一.防火墙相关命令 1.查看防火墙状态 : systemctl status firewalld.service 注:active是绿的running表示防火墙开启 2.关闭防火墙 :systemct ...

  10. 1301班 github安装及账户注册

    1.下载github 下载地址: http://git-scm.com/download/ 2.账号注册 进入:mukever.online 在右下角的“New user? Create an acc ...