PHP基础复习(九)——网络协议

前言

本系列文章主要是根据实战视频《360大牛:全面解读PHP面试》学习过程中记录的学习笔记,期间也会加入查找资料和平时学习中学习到的知识。

 

HTTP协议状态码

五类响应

1xx   (临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。

2xx  (成功) 表示成功处理了请求的状态代码。

3xx  (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

4xx  (请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。

5xx  (服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

常见状态码

200   (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

204   (无内容) 服务器成功处理了请求,但没有返回任何内容。

206   (部分内容) 服务器成功处理了部分 GET 请求。

301   (永久重定向) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302  (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

303  (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

304  (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

307  (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

400 (错误请求) 服务器不理解请求的语法。

401  (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403  (禁止) 服务器拒绝请求。

404  (未找到) 服务器找不到请求的网页。

500  (服务器内部错误) 服务器遇到错误,无法完成请求。

503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

 

OSI七层模型

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

物理层    建立、维护、断开物理连接

数据链路层    建立逻辑连接、进行硬件地址寻址、差错校验等功能

网络层    进行逻辑地址寻址,实现不同网络之间的路径选择。

传输层    定义传输数据的协议端口号,以及流控和差错校验。协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层。

会话层    建立、管理、终止会话

表示层    数据的表示、安全、压缩

应用层    网络服务与最终用户的一个接口。协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

 

HTTP协议的工作特点和工作原理

工作特点

1)基于B/S模式

2)通信开销小、简单快速、传输成本低

3)使用灵活、可使用超文本传输协议

4)节省传输时间

5)无状态

 

工作原理

客户端发送请求给服务器,创建一个TCP连接,指定端口号,默认80,连接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求类型后,服务器会向客户端返回状态信息和数据内容。

 

HTTP协议常见请求/响应头

Content-Type  请求体的MIME类型 (用于POST和PUT请求中)。 Content-Type: application/x-www-form-urlencoded

Accept  可接受的响应内容类型(Content-Types)。Accept: text/plain

Origin  发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。Origin: http://www.itbilu.com

Cookie  由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议Cookie。Cookie: $Version=1; Skin=new;

Cache-Control  用来指定当前的请求/回复中的,是否使用缓存机制。Cache-Control: no-cache 

User-Agent  浏览器的身份标识字符串。User-Agent: Mozilla/……

Referer  表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer其实是Referrer这个单词,但RFC制作标准时给拼错了,后来也就将错就错使用Referer了。Referer: http://itbilu.com/nodejs

X-Forwarded-For   用户经过代理时,代理会增加这个字段,nginx可用内置变量$http_x_forwarded_for取到这个字段,没有使用代理时,此字段为空。X-Forwarded-For: client, proxy1, proxy2

Access-Control-Allow-Origin  指定哪些网站可以跨域源资源共享。Access-Control-Allow-Origin: *

Last-Modified  所请求的对象的最后修改日期(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示)。Last-Modified: Dec, 26 Dec 2015 17:30:00 GMT

 

HTTP协议的请求方法

GET

POST

HEAD

OPTIONS

PUT

DELETE

TRACE

 

HTTP协议的GET和POST请求方法的区别

通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大约 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

GET 可用于发送非敏感的数据。

注释:绝不能使用 GET 来发送密码或其他敏感信息!

通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。

此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。

不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

提示:开发者偏爱 POST 来发送表单数据。

 

HTTPS的工作原理

HTTPS是一种基于SSL/TLS的HTTP协议,所有的HTTP数据都是在SSL/TLS协议封装之上传输的。

HTTPS协议在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。

 

常见网络协议含义及端口

FTP(21)  Telnet(23)  SMTP(25)   POP3(110)   HTTP(80)  DNS(53)

 

 

参考链接:

https://blog.csdn.net/qq_18145031/article/details/78688664

https://www.cnblogs.com/honghong87/articles/6941436.html 

https://www.cnblogs.com/yum777/p/6473165.html

http://www.w3school.com.cn/php/php_forms.asp

https://www.cnblogs.com/jtlgb/p/8805319.html

https://blog.csdn.net/yinni11/article/details/80062516

https://www.cnblogs.com/gotodsp/p/6366163.html

https://blog.csdn.net/u013451157/article/details/78917487

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值