整理了一些关于PHP相关的基础。请你们随意摘看。php
网络通讯协议是一种网络通用语言,为链接不一样操做系统和不一样硬件体系结构的互联网络引提供通讯支持,是一种网络通用语言。
名称 | 注释 |
---|---|
HTTP | Hypertext Transfer Protocol 超文本传输协议,显示网页 |
DNS | Domain Name System 域名系统 |
FTP | File Transfer Protocol 文件传输协议 |
SFTP | SSH File Transfer Protocol 安全文件传送协议 |
SSH | Secure Shell |
名称 | 注释 |
---|---|
TCP | Transmission Control Protocol 三次握手传输协议 |
UDP |
名称 | 注释 |
---|---|
IP | Internet Protocol |
ICMP | Internet Control Message Protocol,主要用于路由发送错误报告 |
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工做小组IETF(Internet Engineering Task Force)合做的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天广泛使用的一个版本——HTTP 1.1。html
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可使浏览器更加高效,使网络传输减小。它不只保证计算机正确快速地传输超文本文档,还肯定传输文档中的哪一部分,以及哪部份内容首先显示(如文本先于图形)等。nginx
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。程序员
HTTP协议一般承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了咱们常说的HTTPS。以下图所示web
默认HTTP的端口号为80,HTTPS的端口号为443。apache
HTTP协议永远都是客户端发起请求,服务器回送响应。见下图编程
这样就限制了使用HTTP协议,没法实如今客户端没有发起请求的时候,服务器将消息推送给客户端。
HTTP协议是一个无状态的协议,同一个客户端的此次请求和上次请求是没有对应关系。浏览器
客户端发送一个HTTP请求到服务器的请求消息包括如下格式安全
Get请求例子服务器
GET /562f25980001b1b106000338.jpg HTTP/1.1Host img.mukewang.comUser-Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36Accept image/webp,image/*,*/*;q=0.8Referer http://www.imooc.com/Accept-Encoding gzip, deflate, sdchAccept-Language zh-CN,zh;q=0.8
POST请求例子
POST / HTTP1.1Host:www.wrox.comUser-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)Content-Type:application/x-www-form-urlencodedContent-Length:40Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley
第一部分:请求行,第一行显示请求类型,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。
通常状况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
HTTP响应也由四个部分组成
HTTP/1.1 200 OKDate: Fri, 22 May 2009 06:07:21 GMTContent-Type: text/html; charset=UTF-8<html><head></head><body><!--body goes here--></body></html>
第一部分状态行 : 由HTTP协议版本号、状态码、状态消息三部分组成。
第二部分消息报头 : 用来讲明客户端要使用的一些附加信息
第三部分空行 : 消息报头后面的空行是必须的
第四部分响应正文 : 服务器返回给客户端的文本信息。
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别
状态 | 注释 |
---|---|
1xx | 指示信息--表示请求已接收,继续处理 |
2xx | 成功--表示请求已被成功接收、理解、接受 |
3xx | 重定向--要完成请求必须进行更进一步的操做 |
4xx | 客户端错误--请求有语法错误或请求没法实现 |
5xx | 服务器端错误--服务器未能实现合法的请求 |
进程的概念是操做系统的结构的基础。Multics的设计者在20世纪60年代首次使用了这个技术词语,它比做业更通用一些。关于进程的定义,以下所示
设计出一个可以协调各类不一样活动的系统软件是很是困难的。
在任什么时候刻都有许多做业在运行中,每一个做业都包括要求按照顺序执行的不少步骤,所以分析时间的序列组合是不可的。因为缺少可以在全部活动中进行协调和合做的系统级的方法,程序员只能基于他们对操做系统所控制的环境的理解,采用本身的特殊方法。然而这种方法是很脆弱的,尤为对于一些程序设计中的小错误,由于这些错误只有在不多见的时间序列发生时才会出现。
因为须要从应用程序软件错误和硬件错误中区分出这些错误,于是诊断工做是很困难的。及时检测出错误,也很难肯定缘由,由于很难在线错误产生的精确场景。通常而言,产生这类错误的4个主要缘由以下:
解决这些问题须要一种系统级别的方法监控处理器中不一样程序的执行。进程的概念为此提供了基础。
所以进程能够看作是由三部分组成的
传统地,操做系统建立进程的方式对用户和应用程序都是透明的,这在当代操做系统中也很广泛。可是容许一个进程引起另外一个进程的建立将是颇有用的。
例如一个程序进程能够产生另外一个进程,以接受应用程序产生的数据,并将数据组织成适合之后分析的格式。新进程与应用程序并行的运行,并当获得新的数据时被激活。
这个方案对于构造应用程序是很是有用的,例如,服务器进程(如打印服务器、文件服务器)能够为它处理的每一个请求产生一个新进程。当操做系统为另外一个进程的显式请求产生一个新进程时,这个动做称为进程派生。
当一个进程派生另外一个进程时,前一个称做父进程,被派生的进程称做子进程。在典型的状况下,相关进程须要像话之间通讯和合做。对程序员来讲,合做是一个很是困难的任务。
线程是进程的一个执行流,线程不能分配系统资源,它是进程的一部分,比进程更小的独立运行的单位
进程就像地主,有土地(系统资源),线程就像佃户(线程,执行种地流程)。每一个地主(进程)只要有一个干活的佃户(线程)。
进程-资源分配的最小单位,相对健壮,崩溃通常不影响其余进程,可是切换进程时耗费资源,效率差些。
线程-程序执行的最小单位,没有独立的地址空间,一个线程死掉可能整个进程就死掉,可是节省资源,切换效率高。
感谢你看到这里,有时一些底层的知识会对平常开发起到很大的做用,去理解它,并不是完全了解它。有什么问题可在评论区留言,谢谢