HTTP概述

**

HTTP概述

**
HTTP(超文本传输协议)是一个基于TCP/IP协议的应用层协议
HTTP基于C/S架构进行通信

其行为比较简单,客户端向服务端发送请求,服务端收到请求后向客户端发送响应信息。
HTTP概述

用一张图来描述大概就是这样

**

URL

URL(统一资源标识符)是标识web资源的唯一标识符,通过URL可以获得对应的web资源,通常来说URL格式如下:

协议名://主机名:端口/路径/文件名?参数#锚

HTTP协议默认使用端口80,在url中不写端口则使用默认端口

不同的参数用”&”号分隔。
**

HTTP请求

HTTP有多种请求方法,以HTTP1.1为例,共有9种:GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT
一般常用的方法是GET和POST,下面开始介绍GET和POST请求

GET请求

  • GET请求是从指定的资源请求数据
  • GET请求的参数会被填写在url中
    以下图为例:
    HTTP概述
    此处URL中?后的参数即为GET请求的参数,请求有长度要求
    *这个长度因浏览器而异
  • GET请求可以被缓存
  • GET请求参数可以被保存在浏览器历史记录中
  • GET请求可以收藏为书签

请求的内容所有人可见,因此GET请求不应该被用于处理敏感数据,例如用户登录。

POST请求

  • POST请求是向指定的资源提交要处理的数据
  • POST请求的参数是在http请求主体中传递

一个POST请求抓包:

HTTP概述

图中what=flag即为参数

  • POST请求不能被缓存
  • 不能被收藏为书签
  • GET参数不能被保存在浏览器历史记录中

因此,相比之下POST方法的安全性比GET方法要好

HTTP消息结构

HTTP请求
先来张图
HTTP概述

请求头由四个部分组成
1. 请求行
包括请求方法,所请求的URL,HTTP协议的版本

2. 请求头
包含服务器要使用的附加信息

3. 空行

4. 请求数据主体
此部分可以包含参数

HTTP响应
再来张图
HTTP概述

响应也由四部分组成
1. 响应行
包含HTTP协议版本号,HTTP状态码

2. 响应头
包含客户端要使用的一些信息

3. 空行

4. 响应正文
html什么的