当前位置:首页 > Laravel > 学习laravel框架之前先了解下HTTP基础

学习laravel框架之前先了解下HTTP基础

学习laravel框架之前先了解下HTTP基础

1.上网的三个关键技术

  • URL(统一资源定位符): 解决对目标服务器中唯一的内容的标识问题;

  • HTTP(超文本传输协议): 解决服务器与客户端信息可靠的传输问题;

  • HTML(超文本标记语言): 解决服务器端返回数据在客户端的显示解析问题;


2.HTTP协议版本历史

  • HTTP/0.9(1990): 只支持GET请求,只接受HTML文本响应;

  • HTTP/1.0(1996): 加入POST请求,传输内容扩展到了图片,多媒体等;

  • HTTP/1.1(1997): 增加了默认保持长连接等,是目前互联网正在使用的标准;

  • HTTP2.0: 正在制定中,离普及还需要一段时间;


3.HTTP相关技术

  • OSI 与 TCP/IP: OSI参考模型用于协议制定,TCP/IP成为世界统一的通信协议标准;

  • TCP/IP: 可以使用不同硬件,不同系统的网络设备之间实现互相通信;

  • 分层: OSI分七层, TCP/IP分五层,每一层都为下层提供服务,层间遵守接口约定,每层数据向上层传递都会附加头部信息

  • 附加信息: 1接收者与发送者,2.上一层的协议类型;

  • 接收与发送地址根据层级而不同:

    • MAC地址: 数据链路层;

    • IP地址: 网络层;

    • 端口号: 传输层;

  • 分层传输过程(先由上而下):

    1. 应用层: HTTP报文 = (HTTP首部字段 + 主体数据);

    2. 传输层: TCP报文 =  TCP首部 + (HTTP首部字段 + 主体数据);

    3. 网络层: IP数据包 = IP首部 + (TCP首部 + (HTTP首部字段 + 主体数据));

    4. 数据链路层: 以太网数据帧: 以太网首部 + (IP首部 + (TCP首部 + (HTTP首部字段 + 主体数据)));

    5. 物理层:

  • 网段内网段间的通信

    1. 地址转发表(交换机): MAC寻址;

    2. 路由控制表(路由器): IP寻址;

    3. 这二表是通过自己学习自动创建,不用用户参与;

    4. 如果二个主机的前24位子网掩码相同,则为同一网段,否则不同网段;

    5. 网段间使用:ARP(地址解析协议),属于数据链路层,通过它可获取另一台主机的MAC地址


4.HTTP

  • 请求的四个步骤:

    • 建立连接: 客户端与服务器;

    • 发送请求: 请求报文 = 请求行 + 消息报头 + 请求内容

    • 响应请求: 响应报文 = 状态行 + 消息报头 + 响应内容

    • 内容解析: 客户端解析处理并显示

  • 备注

    • 通常访问一个页面,会发出多个请求以获取不同的响应内容;

    • HTTP1.0默认响应一次就自动关闭连接;

    • HTTP1.1中则默认为持久连接,即一次TCP连接可完成多次HTTP请求;

    • 是否支持持久连接,由消息报头中的connection字段决定,如close为非持久

  • 请求行

    • GET: 从服务器获取文本, 不含主体数据;

    • POST: 向服务器发送数据, 包含主体数据;

    • PUT: 上传文件到服务器, 包含主体数据;

    • DELETE: 从服务器上删除一个文件,不含主体数据;

    • HEADER: 只获取响应头部, 无主体数据;

  • 状态行

    • 500: Inernal Server Error, 服务器错误,无法响应请求

    • 503: Server Unavailable, 服务器正忙,无法提供正常服务


    • 400: Bad Request, 错误请求

    • 401: Unauthorized, 请求需要包含通过http认证的信息

    • 403: Forbidden, 访问被拒绝

    • 404: Not Found, 没有找到请求的URL资源

    • 301: 永久重定向,请求的URL资源已更新,响应首部包括新的URL

    • 302: 临时重定向, 请求的URL资源临时更新

    • 304: Not Modefied, 请求不符合条件 ,需要更改条件

    • 200: OK, 请求已经被正常处理

    • 204: No Content, 请求已经被正常处理,但没有主体数据

    • 206: Partial Content: 对资源部分请求成功

    • 200 ~ 299: 成功状态码

    • 300 ~ 399: 重定义状态码

    • 400 ~ 499: 客户端错误状态码

    • 500 ~ 599: 服务器错误状态码

免责声明:部分文章信息来源于网络及网友投稿,本网站只负责文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本网站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。烛光驿站欢迎捐赠赞赏

权益
版权所有:© 2018 www.sjzphp.cn
网站备案:冀ICP备17012435号-2
联系邮箱:guotaoi@foxmail.com