计算机网络基础知识随笔

计算机网络随笔

  • UDP协议

    UDP是互联网传输层的主要协议之一,UDP(User Datagram Protocol)是指的无连接的协议,不可靠,UDP没有流量控制和拥塞避免。UDP主要的工作是提供一个接口,并且在接口中增加复用的特性,利用端口的概念将数据段解复用到多个进程中,这就是UDP的工作。

  • TCP协议

    TCP(transmission Contro; Protocol,传输控制协议)专门为不可靠的互联网提供一个可靠的端到端字节流而设计的。TCP的三次握手通信。主机1向主机2发送发送请求,SYN=1,主机二会进行应答并且确认SYN=1 ,ACK=1然后主机1再次向主机2应答确认,完成了当前的三次握手。

  • ARP协议

    尽管每个机器都有它的IP地址,但是在发送分组的时候使用的并不是IP地址,因为主机和网络层并不能理解这样的地址。APR协议(Addreess Resolution Protocol)就为了解决这个问题被提出了。举例:Host1发送广播分组到互联网上,然后每个机器检查自己的IP地址,只有特定的Host2会用自己的硬件地址(即每个机器的唯一MAC地址)作为应答。ARP解决的是,给定一个IP地址,如何找到对应的硬件地址,有时候也可以反向推导,即给定一个硬件地址,找到对应的IP 地址。

  • ICMP协议

    ICMP(Internet Control Message Protocol)协议,该协议可以报告相关的时间,也可以测试互联网的连通性,如常用的Ping程序。常见的10种消息类型在这里插入图片描述

  • HTTP协议

    HTTP(Hypertext Transfer Protocol,超文本传输协议)标准的互联网传输协议,它指定了客户机可以向服务器发送什么样的信息,并且得到什么样的回应。对预览器来说,为了与服务器建立联系,最常见的方法是与服务器上的80端口建立一个TCP连接。使用TCP的意义在于,预览器和服务器都不需要担心信息丢失、消息重复、长消息及消息确认等问题,这些问题都可以由TCP协议处理。
    在这里插入图片描述

FTP协议

FTP与HTTP类似,都是文件传输协议,还都运行在TCP上。区别:FTP使用了两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。    控制连接是用于两个主机之间传输控制信息,诸如用户标识,口令、改变远程目录的命令及发送PUT或者GET命令;数据连接用于准确的传输一个文件。

HTTP协议的作用及特点

HTTP是一个客户端和服务器端请求与应答的标准,客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或其他工具,向客户端发起一个到服务器上指定端口(默认端口号80)的HTTP请求。我们称这个客户端叫user agent,应答的服务器端(网站)存储着一些HTML文件或图像等信息,这个服务器我们称之为origin server。在用户代理和源服务器中间可能存在多个中间层,如代理、网关或者tunnels(隧道)。HTTP可以用在任何其他互联网协议上,HTTP只假定可靠的传输。

由HTTP客户端发起一个请求,建立一个到服务器指定端口的TCP连接,HTTP服务器则在那个端口监听客户端发过来的请求,收到请求后,服务器发回客户端一个状态行,比如“HTTP/1.1 200 OK ”,和响应的信息。HTTP用TCP的原因在于,TCP可以提供传输控制,错误纠正、按顺序组织数据的功能。

通过HTTP或HTTPS协议请求的资源由URLs来标识

基于请求/响应模型的协议。请求和响应必须配对,先有请求再有响应简单快速:客户端向服务器请求服务时,只需要请求方法和路径。请求方法常用的有GET 、HEAD、POST灵活:HTTP允许传输任意类型的数据对象,正在传输的类型用Connent-Type标记。

  • 无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完请求,并收到应答后,即断开连接,这种方式可以节省传输时间。

  • 无状态

HTTP协议是无状态协议,无状态是指对于事物处理没有记忆能力,缺少状态意味着无法处理前面传输的信息,有问题需要重传,这样可能导致每次连接传送的数据量增大;另一方面,在服务器不需要前面的信息的时候他应答就很快。

HTTP协议的版本

HTTP/1.0 发送请求 创建一次连接,获得一个web资源,连接断开

HTTP/1.1 发送请求 创建一次连接,获得多个web资源,连接断开
HTTP协议的组成

HTTP协议由HTTP请求和HTTP响应组成。HTTP请求包括:请求行、请求头、请求体,响应相似。

HTTP请求报文

请求行:例如 POST/chapter17/user.html HTTP/1.1

格式 : 请求方式 资源路径 协议/版本

请求行必须在HTTP请求格式的第一行

  • get请求:

将请求参数追加在url后面,不安全,url长度限制get请求方式数据大小,没有请求体,一般的HTTP请求大多都是GET

  • POST请求:

请求参数在请求体处,较安全,请求数据大小没有显示,只有表单设置为method=“post”才是post请求,其他都是get请求,常见get请求如地址栏直接访问<a href="">、<img src="">

  • HEAD请求

HEAD和GET相似,不过服务端接受到HEAD请求时只返回响应头,不发送响应内容,所以当只看页面状态时,用HEAD更有效,因为省去传输页面内容的时间。

  • DELETE请求

删除某一个资源

  • OPTIONS请求

用于获取当前URL所支持的方法。若请求成功,会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET、POST”PUT请求:把一个资源存放在指定的位置上,本质上讲,PUT和POST极为相似,都是向服务器发送数据,但他们之间有一个重要的区别,PUT通常指定了资源的存放位置,而POST没有,POST的数据存放位置由自己决定。

  • TRACE请求

回显服务器的请求,用于测试或诊断。

  • CONNECT请求

CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器,通常用于SSL加密翻译为一起的连接与非加密的HTTP代理服务器的通信。

REST:

全称是表述性状态转移。表述指的是资源,任何需要被引用的,只要有被引用的必要,它就是资源。要让资源有一个唯一的标识,在Web中这个唯一的标识就是URI,URI既可以当成是资源的地址,也可以看成是资源的名称,如果这些信息没有能用URL标识表示,那它就不能算是一个资源,只能算是资源的一些信息。URI的设计应该遵循可寻址性原则,具有自描述性,需要在形式上给人以直觉上的关联。

URI设计的技巧:

使用-或者_来让URI可读性更好
使用    /   来表示资源的层级关系
使用  ?  用来过滤资源
使用  , 或者 ; 可以用来表示同级资源的关系
  • 统一资源接口:

RESTful架构应该遵循统一接口原则,统一接口包括了一组受限的预定义操作,不论用什么样的资源,都是通过使用相同的接口进行资源的访问。接口应该使用标准的HTTP方法如GET、PUT、POST,并遵循这些方法的语义。

GET、DEKETE、PUT、POST的典型用法:

  • GET:

安全且幂等
获取表示变更时获取表示(缓存)
200 OK -表示已在响应中发出
204(无内容) -资源有空表示
301 (Move Permanently) -资源的URI已被更新 303 (See Other-其他,如负载均衡
304(not modified)-资源未更改(缓存)
400(bad request)-指代坏请求,如参数错误
404(not found)-资源不存在
406(not acceptable)-服务端不支持所需表示
500(internal server error)-通用错误响应 503(Service Unavaliable)-服务器端无法处理请求

  • PUT:

不安全但幂等

用客户端管理的实例号创建一个资源

通过替换的方式更新资源

如果未被修改,则更新资源(乐观锁)

  • POST:

不安全且不幂等使用服务端管理的实例号创建资源创建子资源部分更新资源如果未被修改,则更新资源(乐观锁)

  • DELETE:

不安全但幂等

删除资源

HTTP请求报文头属性

  • 常见请求头:

Referer:表示这个请求是从哪个URL跳转过来的(直接访问就不会有这个请求头)
Accept:告诉服务端,请求所能支持的响应类型,如html、css、js(MIME类型)
if-Modified-Sincce:预览器通知服务器,本地缓存的最后变更时间。
Cookie:客户端的Cookie通过这个报文属性传给服务端。
User-Agent:预览器通知服务器,客户端预览器与操作系统相关信息。
Connection:表示客户端与服务连接类型;
Keep-Alive表示持久连接,close表示已关闭Host:请求的服务器主机名。Content-Length:请求体的长度。
Content-Type:请求的与实体对应的MIME信息。如果是Post请求,会有这个头。

状态码:

  • 1** :

指示信息,表示请求已接收,继续处理。

  • 2**:

成功,表示请求已被成功接受,处理。

200 OK 204 No Content:无内容。服务器成功处理但是未返回内容

  • 3**:

重定向

301 Moved Permanently:永久重定向,表示请求的资源已经永久搬到了其他位置。302 Found:临时重定向,表示请求的资源临时搬到了其他位置。303 See Other:临时重定向,应使用GET定向获取请求资源。

  • 4**:

客户端错误

400 Bad Request:客户端有语法错误,服务器无法理解。401 Unauthorized:请求未经授权403 Forbidden:服务器收到请求,但是拒绝提供服务。404 Not Found:请求资源不存在

  • 5**:

服务器端错误,服务器未能实现合法的请求。

500 Internal Server Error:服务器发生不可预期的错误。503 Server Unavailable:服务器当前不能处理客户端请求,一段时间后可能恢复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值