美文网首页
HTTP协议相关

HTTP协议相关

作者: 凌云01 | 来源:发表于2020-09-09 09:32 被阅读0次

HTTP超文本传输协议

HTTP的请求方式有哪些?
GET请求和POST请求的区别?
HTTP请求的特点

HTTP的请求方式有哪些?

GET、POST、HEAD、PUT、DELETE、OPTIONS

GET请求和POST请求的区别?

GET是用来获取资源,需要遵从安全的、幂等的、可缓存的原则
POST是用来处理资源,非安全的、非幂等的、不可缓存的
安全性:不应该引起Server段的任何变化。 GET HEAD OPTIONS 都遵从
幂等性:同意请求方法执行多次和执行一次的结果是一致的
可缓存性:请求是否可以被缓存,GET、HEAD都可以

HTTP状态码

2XX、3XX、4XX、5XX

2XX 成功
200 OK,表示从客户端发来的请求在服务器端被正确处理
204 No content,表示请求成功,但响应报文不含实体的主体部分
205 Reset Content,表示请求成功,但响应报文不含实体的主体部分,但是与 204 响应不同在于要求请求方重置内容
206 Partial Content,进行范围请求

3XX 重定向
301 moved permanently,永久性重定向,表示资源已被分配了新的 URL
302 found,临时性重定向,表示资源临时被分配了新的 URL
303 see other,表示资源存在着另一个 URL,应使用 GET 方法获取资源
304 not modified,表示服务器允许访问资源,但因发生请求未满足条件的情况
307 temporary redirect,临时重定向,和302含义类似,但是期望客户端保持请求方法不变向新的地址发出请求

4XX 客户端错误
400 bad request,请求报文存在语法错误
401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息
403 forbidden,表示对请求资源的访问被服务器拒绝
404 not found,表示在服务器上没有找到请求的资源

5XX 服务器错误
500 internal sever error,表示服务器端在执行请求时发生了错误
501 Not Implemented,表示服务器不支持当前请求所需要的某个功能
503 service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求

HTTP建立连接流程:
  • 通过TCP三次握手
  • 在这条连接上进行请求/响应
  • 经历TCP四次挥手进行连接释放


    三次握手四次挥手.jpg

    三次握手
    1、客户端发送链接需要发送一个SYN同步报文到Server端
    2、当Server收到同步报文之后(或者说建立连接之后),返回给客户端一个SYN+ACK这样的TCP报文
    3、客户端收到Server回复之后,再次回送一个ACK确认报文

四次挥手
客户端主动发起FIN终止报文,来断开客户端与Server端的连接,Server会发一个ACK确认信息
Server可能还会发送一些东西,在某一时刻Server向客户端发送FIN终止报文,来断开Server和客户端的连接,客户端收到之后回发一个ACK确认报文给Server端

HTTP的特点

1)无连接
经过了建立连接和释放连接的过程。可以通过HTTP的持久连接方案来进行无连接的补偿。

2)无状态
对于同一个用户,多次进行http请求时,server是不知道是否是同一个用户。可以通过cookie/session来解决。

非持久连接的定义:

每次进行http请求都是重新创建一个TCP连接,经历三次握手和四次挥手。

持久连接的定义:

打开一条tcp通道,多个http请求在同一条tcp通道上进行,在一段time后关闭。(在一定时间内多次进行请求的过程)

头部字段
Connect: keep-alive 表示客户端期许采用持久连接
time: 20 持续时间
max: 5 最多发生多少个HTTP请求

持久连接.png
怎样判断一个请求是否结束?

Content-length: 1024 根据客户端接收的字节数是否达到了Content-length
chunked , 比如通过post请求server端给客户端可能会多次响应返回数据,当有多个块通过http的tcp连接传给客户端时,每一个报文都会带有chunked字段,而最后一个块是一个空的chunked。所以可以通过判断哪个chunked是空的来判断前一个网络请求是否结束。

charles抓包原理是怎样的?

利用了http的中间人攻击这个漏洞。

中间人攻击:

当client发送一个http请求时,是由中间人进行hold住,然后中间人假冒client的身份向server端进行同样的请求,然后server端返回结果给中间人,再由中间人返给client。

如果使用http进行请求或者响应时,中间人可以篡改我们发起的请求参数,server端发回的数据也可以被篡改之后再发给client。


中间人攻击.png

相关文章

  • http协议相关

    https://www.cnblogs.com/chenwenhao/p/11267238.html http协议...

  • HTTP协议相关

    HTTP超文本传输协议 HTTP的请求方式有哪些?GET请求和POST请求的区别?HTTP请求的特点 HTTP的请...

  • Http协议相关

    Http常使用的方法: post put get delete options head Http相应状态码: 1...

  • HTTP协议相关

    1.介绍一下网络七层模型,HTTP在哪一层? 2.概念 1.HTTP:超文本传输协议基于TCP协议进行可靠传输,用...

  • HTTP协议相关

    GET 和POST 请求方式的区别 从语义的角度来回答 get是获取资源。安全的,幂等的,可缓存的。 post是处...

  • HTTP协议相关

    1.http是超文本传输协议。支持B/S模式,优点是简单快速,B端发出请求只需要传送方法和路径。正在传输的类型有c...

  • HTTP协议相关

    超文本传输协议 请求/响应报文 连接建立的流程 HTTP的特点 请求/响应报文 请求报文请求报文结构请求行、首部字...

  • HTTP协议相关问题

    一 协议的表达方式 1.什么是协议? 通信双方预先定义好的通信规范或规则 2.协议一般都包括哪些内容? 网络协议是...

  • HTTP协议相关知识

    TCP协议的三次握手和四次握手 TCP协议的三次握手其实就是解决连接的可靠性。 解释一下相关符号: TCP标志位(...

  • http协议相关总结

    1、通信: 通信的三要素 = 通信主体+通信内容+通信方式(响应) 2、通信协议: (1)一般通信:通信双方要完成...

网友评论

      本文标题:HTTP协议相关

      本文链接:https://www.haomeiwen.com/subject/byvjektx.html