Http协议

Http协议

http协议是什么?

hypertext transfer protocol(超文本传输协议),TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。

tcp三次握手

1.两个传输需要的包

SYN(synchronous):tcp/ip 建立连接的握手信号
ACK(Acknowledgement):确认字符,确认发来的数据已经接受无误

2.三次握手的过程
三次握手

  • 客户端发送syn包–>服务器,等待服务器确认。

  • 服务器收到syn包,确认客户的syn,服务器自己也发送一个syn包,即syn+ack 包;

  • 客户端收到syn+ack 包,向服务器发送确认包ack,完成三次握手,开始传送数据;

在这里插入图片描述

Http协议的业务流程 (上网流程)

  • 用户输入想要访问的地址(url)
  • 解析url,先去缓存(浏览器缓存,系统缓存,路由器缓存)和本机 (vhosts)看看有没有
  • 有就显示页面,没有就取本地DNS服务器(还没有就去请求根DNS)进行域名解析,
  • 解析得到ip地址,进行三次握手,建立tcp连接,发送http请求,请求数据包。
  • 服务器收到请求信息,返回一个响应头和请求体
  • 客户端收到返回结果,开始解析html和内嵌资源

在这里插入图片描述

Http的几种请求方式

实际开发中我们用得较多的方式是GetPost,但是实际开发可能还会用到其他请求方式,比如PUT, 下面为了方便大家,就把所有的请求方式列出来吧

Get:请求获取Request-URI所标识的资源
POST:在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应信息报头
PUT:请求服务器存储一个资源,并用Request-URI作为其标识
DELETE:请求服务器删除Request-URI所标识的资源
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT:保留将来使用
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项

Get和Post的对比

GET:在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔
但数据容量通常不能超过2K,比如:http://xxx?username=…&pawd=…这种就是GET

POST: 这个则可以在请求的实体内容中向服务器发送数据,传输没有数量限制
另外要说一点,这两个玩意都是发送数据的,只是发送机制不一样,不要相信网上说的
"GET获得服务器数据,POST向服务器发送数据"!!另外GET安全性非常低Post安全性较高
但是GET执行效率却比Post方法好,一般
查询的时候我们用GET数据增删改的时候用POST!!

Http状态码合集

当然,这些状态码只是要给参考,实际上决定权在服务器端(后台的)手上,一种方案是请求后,
服务器返回给我们的是状态,或者另一种,在应用不用弄多语言版本的时候最好用,直接返回 一串结果信息的Json给我们,我们直接显示就好

下面列下状态码合集,参考 下就好:

100~199 :     成功接受请求,客户端需提交下一次请求才能完成整个处理过程
    200 :     OK,客户端请求成功
300~399 :    请求资源已移到新的地址(302,307,304)
    401 :    请求未授权,改状态代码需与WWW-Authenticate报头域一起使用
    403Forbidden,服务器收到请求,但是拒绝提供服务
    404Not Found,请求资源不存在,这个就不用说啦
    500Internal Server Error,服务器发生不可预期的错误
    503Server Unavailable,服务器当前不能处理客户端请求,一段时间后可能恢复正常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值