HTTP请求走私前章---关于http协议的简单学习

若有什么建议和错误还请指出

HTTP协议:

HTTP是超文本传输协议,是一个基于请求与响应模式的,无状态的,应用层的协议,常基于TCP的连接方式(新手可以理解为传输网页的协议吧233)

**无状态:**对于事务处理没有记忆能力,每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况


HTTP报文:

在这里插入图片描述

图片来源于https://www.cnblogs.com/klguang/p/4618526.html

报文可以bp抓包自己查看,bp yyds好吧

HTTP请求方法:

1.GET

用于获取请求页面的指定消息,如果请求资源为动态脚本(非HTML),返回的是web容器解析后的源代码

2.HEAD

与GET相似,但服务器不能在响应里返回消息主体

3.POST

与GET相似但GET无请求内容,POST有请求内容

4.PUT

用于请求服务器把请求中的实体储存在请求资源下

5.DELETE

用于请求源服务器删除指定资源

6.TRACE

用于激发一个远程的应用层的请求消息回路,回显服务器请求

7.CONNECT

用于动态切换到隧道的代理(HTTP 1.1)

8.OPTIONS

请求获得有URI标识的资源在请求/响应的通信过程中可以使用的功能选项,可以在采取具体请求资源请求之前决定对该资源采取何种必要措施,或者了解服务器性能


HTTP消息

1.HOST

请求报头域主要用于被请求资源的Internet主机和端口号

2.User-Agent

请求报头域允许客户端将他的操作系统,浏览器和其他属性告诉服务器

3.Referer

代表当前访问的url的上一个url

4.cookie

常用于表示请求者身份

5.Range

请求实体部分的内容

6.x-forward-for

代表请求端的IP

7.Accept

用于指定客户端接收哪些MIME类型的信息

8.Accept-Charset

指定客户端接收的字符集


响应头

1.Server

服务器所用web服务器的名称

2.Set-Cookie

查看服务器向客户端发送的cookie信息

3.Last-Modified

告诉浏览器资源的最后修改时间

4.Location

服务器通过这个头告诉浏览器去访问哪个页面,浏览器接收这个请求,会立刻访问Location头所指向的页面


普通头


实体头

1.Content-Type

向接收方指示实体的介质类型

2.Content-Encoding

用于媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容编码,需要采用相应的解码机制

3.Content-Length

指明实体正文长度,以字节方式储存的十进制数字来表示

4.Last-Modified

用于指示资源最后修改日期和时间


状态码

1xx:信息提示,表示请求已被成功接收,继续处理。其范围为100~101。
2xx:成功,服务器成功地处理了请求。其范围为200~206。
3xx:重定向,重定向状态码用于告诉浏览器客户端,它们访问的资源已被移动,并告诉客户端新的资源地址位置。这时,浏览器将重新对新资源发起请求。其范围为300~305。
4xx:客户端错误状态码,有时客户端会发送一些服务器无法处理的东西,比如格式错误的请求,或者最常见的是,请求一个不存在的URL。其范围为400~415。
5xx:有时候客户端发送了一条有效请求,但 Web服务器自身却出错了,可能是Web服务器运行出错了,或者网站都挂了。5XX就是用来描述服务器内部错误的,其范围为500~505。

200:客户端请求成功,是最常见的状态。
302:重定向。
404:请求资源不存在,是最常见的状态。
400:客户端请求有语法错误,不能被服务器所理解。
401:请求未经授权。
403:服务器收到请求,但是拒绝提供服务。
500:服务器内部错误,是最常见的状态。
503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。


HTTPS

HTTPS是加密传输的HTTP,使用TLS/SSL加密,http端口是80,https是443


HTTP /2相对于HTTP /1.1的提升

  1. 二进制分帧:HTTP2.0 将所有传输的信息分割为更小的消息和帧,并对它们采用二进制格式的编码。
  2. 请求与响应复用:客户端和服务器可以把HTTP 消息分解为互不依赖的帧,然后乱序发送,最后再在另一端把它们重新组合起来
  3. 服务端推送:服务器可以对一个客户端的请求发送多个响应,比如一个请求只请求了html,服务器会把js等文件一起响应
  4. 头部压缩:在HTTP2.0中,我们使用了HPACK(HTTP2头部压缩算法)压缩格式对传输的header进行编码,减少了header的大小。并在两端维护了索引表,用于记录出现过的header,后面在传输过程中就可以传输已经记录过的header的键名,对端收到数据后就可以通过键名找到对应的值。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值