• HTTP协议


    1 简介

    HTTP(Hypertext Transfer Protocol)超文本传输协议,详细的规定了万维网服务器和客户端之间传输数据的通讯规则。

    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

    2 HTTP请求

    2.1 基本介绍

    浏览器连上服务器后,向服务器请求某个web资源,称之为浏览器向服务器发送了一个HTTP请求。

    一个完整的HTTP请求包括如下内容:一个请求行、若干消息头,以及实体内容。其中一些消息头和实体内容都是可选的。

    以test.php为例:

    <?php
    echo '123';

    image

    2.2 请求行细节

    请求行的细节主要体现在请求方式:GET和POST。除了GET和POST之外,还有HEAD、OPTIONS、DELETE、TRACE、PUT,但是使用到的基本就是GET和POST。

    GET和POST有哪些区别?

    • GET请求的数据会跟在URL(统一资源定位)之后。POST提交把提交的数据放置在HTTP包的包体中。因此,GET提交的方式在地址栏中显示出来,POST地址栏则不会改变。
    • 传输数据的大小:HTTP协议没有对传输的数据大小进行限制,也没有对URL长度进行限制。实际开发过程主要限制有:GET方式特定浏览器和服务器对URL长度有限制。IE大概2k,Chrome大概8k。而POST理论上没有大小限制的,但是受服务器php.ini配置的影响(post_max_size)。
    • 安全性:相对而言,post提交,安全性最高。
    • 默认请求都是GET请求,超链接也是GET请求。

    2.3 消息头细节

    2.3.1 基本介绍

    消息头主要是浏览器在请求服务器中,携带的浏览器信息。

    那么服务器如何接收浏览器传递过来的浏览器的消息呢?

    通过$_SREVER这个变量接收,浏览器传递的消息头。

    重点介绍一些常用的消息头($_SERVER变量里的键值):

    HTTP_REFERER,用来获得该请求是从哪个页面过来的

    SERVER_ADDR,服务器的IP地址,::1表示本地服务器

    REMOTE_ADDR,请求我这台服务器的客户端的ip地址

    DOCUMENT_ROOT,服务器文档的跟目录

    SCRIPT_NAME,请求的脚本(文件)名称

    REQUEST_TIME,请求的时间

    2.3.2 经典案例1:封杀某一段的IP

    <?php
    $remote = $_SERVER['REMOTE_ADDR'];
    $banned = '192.168.1';
    if(strpos($remote, $banned) !== false){
    	// 说明找到了要禁止的网段
    	echo '你已经列入访问的黑名单,无法访问';
    	exit();
    }
    echo '欢迎访问';

    2.3.3 经典案例2:防盗链

    3 HTTP响应

    所谓的响应,就是服务器给浏览器回应的内容。

    一个完整的HTTP响应包括3个部分:状态行、消息头、实体内容。

    image

    3.1 HTTP响应细节-状态码

    HTTP响应的状态码有很多,但是最常见的就是如下几个,需要重点掌握:

    200:请求成功

    404:not found,未找到这个资源

    302:表示重定向

    304:Not Modified,未修改

    403:Forbidden,禁止访问

    500:服务器内部错误

  • 相关阅读:
    Vue常用特性-表单基本操作和表单修饰符
    Tab选项卡
    Vue模板语法
    Vue基本使用
    Vue概述
    Express框架
    模板引擎artTemplate
    MongoDB增删改查操作
    数据库概述及环境搭建
    请求响应原理及HTTP协议
  • 原文地址:https://www.cnblogs.com/falling-maple/p/9357137.html
Copyright © 2020-2023  润新知