http

TCP/IP通信的传输流流程
TCP/IP通信的传输流的整个流程:
http(客户端)<->TCP<->IP<->网络<->网络<->IP<->TCP<->http(服务端)
这个流成大概是这样的:首先作为发送端的客户端在应用层(http协议)发出一个想看xxx.xxx.com网站的http请求。接着,为了方便传输,在传输层(TCP协议)把从应用层收到的数据(http请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。然后在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层,到这里发往网络请求就准备好了。接受端的服务器在链路层接收到数据,按序往上发送,一直到应用层,这样才算服务端接收到客户端发送过来的http请求。

从浏览器输入到看到页面的过程
首先用户输入URL,接着此URL会被DNS解析找到对应的IP地址,然后会与目标服务器建立TCP链接(TCP链接也叫着TCP三次握手,所谓的三次握手就是,客户端一开始给服务端发送一个带SYN标志的数据包;服务端
接收到后,会给客户端发送一个SYN/ACK标志到数据包;然后客服端接收到了再给服务端发送一个ACK的数据包;这样三次握手完成后就建立起了TCP链接);建立好链接后,TCP协议还会将http请求的报文分割成报文段,按序号分为多个报文段,发送给对应的服务端;然后服务端的TCP协议接收到报文段后,按序号以原来的顺序重组报文段,然后服务端找到对应的内容返回给浏览器。此时浏览器开始解析该返回文档,首页浏览器会先解析HTML,生成DOM树,再解析css,生成规则树,最后结合两者,生成渲染树,在生成渲染树的过程中浏览器会调用GPU绘制,合成图层,显示在屏幕上。

HTTP所有请求方法的作用
1.GET
作用:用来请求访问已被URI识别的资源。
2.POST
作用:用来传输实体的主体。
3.PUT
作用:用来传输文件。
4.HEAD
作用:获取报文首部。
5.DELETE
作用:用于删除文件,跟put刚好相反。
6.OPTIONS
作用:用来查询针对请求URI指定的资源支持的方法。

HTTP的持久链接
在请求头设置Connection:keep-alive(http1.1默认为持久链接)

设置Cookie
响应头设置set-cookie
请求头设置cookie

http状态码
状态码有一下几种类型:
1xx:接收的请求正在处理

100     //继续  请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101     //切换协议  请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx:请求正常处理完毕

200     //成功  服务器已经成功处理了请求。通常,这表示服务器提供了请求的网页。
201     //已创建  请求成功并且服务器创建了新的资源
202     //已接受  服务器已接受请求,但尚未处理
203     //非授权信息  服务器已经成功处理了请求,但返回的信息可能来自另一来源
204     //无内容  服务器成功处理了请求,但没有返回任何内容
205     //重置内容  服务器成功处理了请求,但没有返回任何内容
206     //部分内容  服务器成功处理了部分GET请求

3xx:需要进行附加操作以完成请求

300     //多种选择  针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择。
301     //永久移动  请求的网页已永久移动到新位置。服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置。
302     //临时移动  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303     //查看其它位置  请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码
304     //未修改  自动上次请求后,请求的网页未修改过。服务器返回此响应,不会返回网页的内容
305     //使用代理  请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理
307     //临时性重定向  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有的位置来进行以后的请求

4xx:服务器无法处理请求

400     //错误请求  服务器不理解请求的语法
401     //未授权  请求要求身份验证。对于需要登录的网页,服务器可能返回此响应
403     //禁止  服务器拒绝请求
404     //未找到  服务器找不到请求的网页
405     //方法禁用  禁用请求中指定的方法
406     //不接受  无法使用请求的内容特性响应请求的网页
407     //需要代理授权  此状态码与401(未授权)类似,但指定请求者应当授权使用代理
408     //请求超时  服务器等候请求时发生超时
409     //冲突  服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。
410     //已删除  如果请求的资源已永久删除,服务器就会返回此响应
411     //需要有效长度  服务器不接受不含有效内容长度标头字段的请求
412     //未满足前提条件  服务器未满足请求者在请求者设置的其中一个前提条件
413     //请求实体过大  服务器无法处理请求,因为请求实体过大,超出了服务器的处理能力
414     //请求的URI过长  请求的URI(通常为网址)过长,服务器无法处理
415     //不支持媒体类型  请求的格式不受请求页面的支持
416     //请求范围不符合要求  如果页面无法提供请求的范围,则服务器会返回此状态码
417     //未满足期望值  服务器未满足“期望”请求标头字段的要求

5xx:服务器处理请求出错

500     //服务器内部错误  服务器遇到错误,无法完成请求
501     //尚未实施  服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码
502     //错误网关  服务器作为网关或代理,从上游服务器无法收到无效响应
503     //服务器不可用  服务器目前无法使用(由于超载或者停机维护)。通常,这只是暂时状态
504     //网关超时  服务器作为网关代理,但是没有及时从上游服务器收到请求
505     //HTTP版本不受支持  服务器不支持请求中所用的HTTP协议版本

总结常用的状态码:
200:表示从客户端发到服务端的请求被正常处理成功
204:表示服务端接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分
206:表示客户端进行了范围请求,而服务端成功执行了这部分的GET请求
301:表示永久重定向
302:表示临时重定向
304:表示服务端资源未改变,可直接使用客户端未过期的缓存
400:表示请求报文中存在语法错误
401:表示发送的请求需要有HTTP认证(BASIC认证,DIGEST认证)的认证信息
403:表示服务端拒绝了客户端的请求访问
404:表示服务端未找到客户端请求的地址
500:表示服务端在执行请求时发生的错误
503:表示服务端暂时处于超负荷或正在进行停机维护

HTTP和HTTPS
什么是HTTP?
HTTP是以超文本传输的协议作为规范,完成从客户端到服务端等一系列运作流程。
(也可以说它是连接客户端->网关->服务端的一个流程)
优点:
快速简单,灵活,无链接,无状态
缺点:
通信使用明文,内容可能被窃听;
不验证通信方的身份,因此有可能遭遇伪装;
无法证明报文的完整性,有可能已遭篡改

什么是https?
http加上加密处理和认证以及完整性保护(SSL)后即HTTPS
优点
HTTPS的优点就是HTTP的缺点的相反。
缺点:
慢,更耗CPU及内存资源,还有一个就是需要一笔够买证书的费用

什么是SSL:
ssl是独立HTTP协议的,是当今世界上应用最为广泛的网络安全技术。它采用的加密方式是公开密钥加密的加密处理方式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值