HTTP请求

Posted 小鹿可可乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP请求相关的知识,希望对你有一定的参考价值。

1.HTTP工作原理

HTTP协议是超文本传输协议,是基于TCP/IP通信协议来传递数据(html文件,图片文件,查询结果等)
一个HTTP请求报文由请求行(request line)请求头(header)空行请求数据四部分构成
在这里插入图片描述

1.1请求行

由请求方法字段,URL字段和HTTP协议版本字段3个字段构成
根据HTTP标准,可以使用多种请求方法
主要的三种请求方法:GET ,POST和HEAD

方法描述
GET请求指定的页面信息,并返回实体主体
POST向指定资源提交数据进行处理请求(提交表单或者上传文件)数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改
HEAD类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头

1.1.1 GET请求

  • 当客户端要从服务器中读取文档时,当点击网页上的链接或者通过浏览器的地址栏输入网址来浏览网页,使用的都是GET方式。
  • GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。
  • 不适合传送私密数据,账号密码都会显示出来 不安全,对数据保密性差。所以如果需要传送大量数据的时候,也不适合GET请求。
  • (?)代表URL结束 和 请求参数的开始, 无请求数据

1.1.2 POST请求

可以允许客户端给服务器提供信息较多。可以传输大量数据,这样POST方式对传送的数据大小没有限制,也不会显示在URL中。

1.1.3 GET 和 POST区别(重要)

  • GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变
  • 传输数据大小:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。 **GET:**特定浏览器和服务器对URL长度有限制,对于GET提交时,传输数据就会受到URL长度的限制。 **POST:**由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制。
  • 安全性: POST的安全性要比GET的安全性高

1.2.请求头

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号:分隔。

  • User-Agent:产生请求的浏览器类型
  • Accept: 客户端可识别的内容类型列表
  • Host: 请求的主机名,允许多个域名同处一个
  • IP地址,即虚拟主机

1.3.空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头

1.4.请求数据(POST有)

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最长使用的请求头Content-Type和Content-Length。

2.HTTP响应消息

状态行,响应头,空行,响应正文

2.1状态行

状态行通过状态码来说明所请求资源的资源情况
在这里插入图片描述
状态码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

  • 1xx : 指示信息 – 表示请求已接收,继续处理
  • 2xx : 成功 – 表示请求已被成功接收,理解
  • 3xx : 重定向 – 要完成请求必须进行更进一步的操作
  • 4xx : 客户端错误 – 请求有语法错误或请求无法实现
  • 5xx : 服务器端错误 – 服务器未能实现合法的请求

今天也要好好学习呀~

以上是关于HTTP请求的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议HTTP请求和响应

HTTP请求方法

HTTP协议:HTTP请求和相关API

HTTP请求行、请求头、请求体详解

Spring HTTP请求过程

HTTP请求报文结构