HTTP请求概念

一、http请求组成

以get请求为例:

 

 

二、请求协议:

1)http:超文本传输协议,被用于在web浏览器和网站服务器之间传递信息,是基于TCP/IP的关于数据如何在万维网中如何通信的协议,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截获了传输报文,就可以读取内容,所以不建议传输一些敏感信息,他是一种基于TCP连接的请求/响应模式的协议,用于从WWW服务器传输超文本(HTML)到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记,http限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,客户端与服务器不会一直保持会话连接,所以为了保持这连接状态,出现了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。目前广泛使用的是HTTP/1.1版本

2)https:安全套接字超文本传输协议(HTTPS),HTTPS在HTTP的基础上加入了SSL 协议,SSL依靠证书来检验服务器的身份,并且还为客户端与服务器之间的通信加密,简单讲是HTTP的安全版,这是目前实际使用中运用较多的。

 

三、常见请求类型

1) get请求:向服务器请求指定的数据(页面信息),并返回实体主体(一般用于去请求获取数据),get请求的参数直接在地址栏显示,以?隔开,如果有多个参数,每个参数用&分隔。由于参数直接显示在url上所以隐私性安全性较差,且参数长度也是有限制的,GET请求没有请求体,get请求一般用于查询

2) post请求:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。post请求有请求体,通常用来发送数据,发送数据就是被包含在请求体中。POST请求一般用于新建,也可以用于修改。

3) put请求:从客户端向服务器传送的数据取代指定的文档的内容,一般用于修改

4) delete请求:请求服务器删除指定的页面,一般用于删除

5) head请求:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

6) connect请求:能够将连接改为管道方式的代理服务器

7) options请求:允许客户端查看服务器的性能

8)trace请求:显示服务器收到的请求,主要用于测试或诊断

从上面可知:get、post、delete、put四种请求类型可完成对服务器上资源数据的增删查改操作

 

get和post请求的区别如下:
1.get是向服务器要数据,也就是接收数据,而post是向服务器发送数据
2.get请求的参数在地址栏显示,而且post请求的参数在请求体显示,所以get请求的安全性没有post安全性高
3.get请求的参数有长度的限制,限制的长度根据浏览器而定,而post请求的参数没有长度的限制
4.get 请求体是没有内容的,而post请求体有内容

四、HTTP报文组成

1)请求报文构成

  1. 请求行:包括请求方法、URL、协议/版本
  2. 请求头(Request Header)
  3. 请求正文

 

2)响应报文构成

  1. 状态行(响应的状态码)
  2. 响应头
  3. 响应正文

 

五、响应状态码

状态码分类:

  • 1XX- 信息型,服务器收到请求,需要请求者继续操作。
  • 2XX- 成功型,请求成功收到,理解并处理。
  • 3XX - 重定向,需要进一步的操作以完成请求。
  • 4XX - 客户端错误,请求包含语法错误或无法完成请求。
  • 5XX - 服务器错误,服务器在处理请求的过程中发生了错误。

 

常见状态码:

  • 200 OK - 客户端请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 302 - 临时跳转
  • 400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  • 404 - 请求资源不存在,可能是输入了错误的URL
  • 500 - 服务器内部发生了不可预期的错误
  • 503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
posted @ 2021-04-19 18:09  机智的老猫咪  阅读(531)  评论(0编辑  收藏  举报