计算机网络

《计算机网络》概览。

HTTP协议

https://developer.mozilla.org/en-US/docs/Web/HTTP
https://www.w3cschool.cn/http/a96bxfml.html
https://devdocs.io/http/

  • HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。
  • 它可以使浏览器更加高效,减少网络传输。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
  • Python爬虫开发,主要是和HTTP协议打交道。

    HTTP请求过程

  • HTTP协议采取的是请求响应模型及其示图。
  • HTTP协议永远都是客户端发起请求,服务器回送响应。
  • HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求没有对应关系。
  • 一次HTTP操作称为一个事务,其执行过程可分为四步:
    首先客户端与服务器需要建立连接,例如单击某个超链接,HTTP的工作就开始了。 建立连接后,客户端发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息,包括请求修饰符、客户机信息和可能的内容。
    服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息,包括服务器信息、实体信息和可能的内容。 客户端接收服务器所返回的信息,通过浏览器将信息显示在用户的显示屏上,然后客户端与服务器断开连接。
    如果以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,在显示屏输出,这些过程是由HTTP协议自己完成的。

    HTTP状态码

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。在浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码主要是是为了标识此次HTTP请求的运行状态。
    HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。
  • 200——请求成功。
  • 301——资源(网页等)被永久转移到其他URL。
  • 404——请求的资源(网页等)不存在。
  • 500——内部服务器错误。
    HTTP头信息
    [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers mozilla]

IPC几种通信方式(进程间的通信方式)

管道(pipe)
管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。
管道有三种
普通管道。有两个限制:一是只支持半双工通信方式,即只能单向传输;二是只能在父子进程之间使用; 流管道。去除第一个限制,支持双向传输;
*命名管道。去除第二个限制,可以在不相关进程之间进行通信。
命名管道(namedpipe)
命名管道也是半双工的通信方式,它克服了管道没有名字的限制,并且它允许无亲缘关系进程间的通信。命令管道在文件系统中有对应的文件名,命名管道通过命令mkfifo或系统调用mkfifo来创建。MicrosoftSQLServer数据库默认安装后的本地连接使用的就是命名管道。MySQL在Window环境下,如果需要两个进程在同一台服务器上通信可以使用命名管道,通过–enable-named-pipe选项设置。
信号量(semophore)
信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
消息队列(messagequeue)
消息队列是由消息的链表结构实现,存放在内核中并由消息队列标识符标识。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
信号(sinal)
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。除了用于进程通信外,进程还可以发送信号给进程本身。
共享内存(sharedmemory)
共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的IPC方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量配合使用,来实现进程间的同步和通信。MySQL内部通信也使用了共享内存的方式,可以通过配置文件添加–shared-memory实现
套接字(socket)
也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

文章目录
  1. HTTP协议
  2. HTTP请求过程
  3. HTTP状态码
  4. IPC几种通信方式(进程间的通信方式)
|