tnblog
首页
视频
资源
登录

HTTP协议

4332人阅读 2021/6/24 10:40 总访问:69170 评论:0 收藏:0 手机
分类: 前端

  前  言

HTTP

 HTTP协议简介:
超文本传输协议(英文全称:HyperText Transfer Protocol,缩写:HTTP),是一种用于分布式、协作式和超媒体信息系统的应用层协议。


什么是HTTP协议?

        超文本传输协议,用于从万维网服务器传输超文本到本地浏览器的传送协议,是万维网数据通信的基础, 用于客户端和服务器之间的通信。
HTTP协议基于TCP/IP通信协议来传递数据。

HTTP协议的优点

1:HTTP使用的是可靠的数据传输协议,底层是TCP协议,确保了内容的正确性,完整性,顺序性。能确保数据在传输的过程中不会被损坏或者产生混乱。

2:简单快速。客户向服务器请求服务时,只需传输请求方法和路径(常用的请求方法有:POST,GET,DELETE,PUT),HTTP服务器的程序规模小,所以通信速度快。

3:灵活性。HTTP允许传输任意类型的数据对象。

4:无状态。HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存,对发送过的请求和响应都不做持久化处理(不做任何保存)。
注意:HTTP是无状态的,那么服务器如何区别特定的客户端?答案是cookie和session。

5:无连接。限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。


HTTP~URL
        HTTP使用统一资源标识符(Uniform Resource Identifiers)来传输数据和建立连接。URL(Uniform Resource Locator)是一种特殊类型的URI,是一种具体的URI。
URL的组成:

1、协议部分:代表网页使用的协议。在Internet中可以使用多种协议。


2、域名部分:一个URL中,也可以使用IP地址作为域名使用。


3、端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80。


4、虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录不是一个URL必须的部分。


5、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。文件名部分不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。


6、锚部分:从“#”开始到最后,都是锚部分。锚部分不是一个URL必须的部分


7、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。


URN:

        URN(Uniform Resource Name),统一资源命名,是通过名字来标识资源。

URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即URN,它命名资源但不指定如何定位资源。

HTTP的方法

        HTTP支持几种不同的请求命令,这些命令被称为方法(HTTP method),每条HTTP的请求都包含一个方法。

        GET与POST的区别:
1:GET的重点是从服务器上获取资源,POST重点是向服务器发送数据。
2:GET也能发送数据,通过URL请求,问号传参,发送数据,这个过程用户是可见的,而POST传输数据是将字段与对应值封存在请求实体中发送给服务器,用户是不可见的。
3:因为收到URL的长度限制,所以GET的传输量小,但是效率高,而POST可以传输大量数据。
4:因为GET是通过URL传输数据的,而URL是可见的,所以安全性没有POST高。
5:GET方式只支持ASCII字符,向服务器传递中文字符可能会出现乱码,而POST支持标准字符集,可以传递中文字符。

传输区别:

对于GET方式的请求,浏览器会把header和data一并发送出去,服务器响应200,返回数据

而对于POST,浏览器先发送header,服务器响应100,continue,浏览器再发送data,服务器响应200,返回数据。
(注:并不是所有浏览器都会在POST中发送两次包


状态码

        每条HTTP响应返回时都会携带一个状态码。
状态码是一个三位数数字的代码,告知客户是否请求成功,或者是否需要进行其他动作。
每个数字的状态码都会伴随一条解释性的原因短语。



一个完整的HTTP请求

完整的HTTP请求主要有六个步骤:

1:输入URL后,将URL发送给DNS,域名解析(DNS服务),根据域名找到服务器的ip地址,和端口号。
2:发起TCP的3次握手。
3:建立TCP连接后发起HTTP请求,发送header,body等信息
4:服务器端响应HTTP请求,将资源封装成响应包返回,关闭连接,浏览器得到html代码
5:浏览器解析html代码,并请求html代码中的资源,浏览器拿到返回包做解析,然后再次发送HTTP请求,拿到这些数据,最终显示出这些内容。
6:浏览器对页面进行渲染呈现给用户。


评价

net core启动报错Unable to configure HTTPS endpoint. No server certificate was specified

这是因为net core2.1默认使用的https,如果使用Kestrel web服务器的话没有安装证书就会报这个错其实仔细看他的错误提示,其...

HTTPmodule忽略静态资源

只需要配置一个preCondition="managedHandler"即可<system.webServer> <modules> <addname=&qu...

wcf DuplexHTTPBinding双向通信

一:建立接口CallbackContract = typeof(ICallback)指定需要回调通信的接口,该接口方法由前端实现[ServiceContract(Callba...

ASP.NET管道模型之HTTPModule

HttpModule是什么在Http请求处理过程中,请求会前后两次通过一系列的HttpModule,这些Module对Http请求具有完全控制权,可...

HTTPModule管道模型小细节

//在HttpModule管道模型中,如果用重定向跳转页面,因为HttpModule是程序最开始的执行地方,所以在里面永远都是循环的在执...

.NET HTTPClient和webapi相关的东东先记录一点。传递Authorization headertoken

get请求传递Authorization header,tokenstringurl="你请求的url"; stringtoken="yourtoken"; Http...

net core无法使用HTTP访问

是因为默认开启了Https重定向,去掉就好了

NotSupportedException: HTTP/2 over TLS is not supported on Windows 7 due to missing

.net core grpc报错:NotSupportedException: HTTP/2 over TLS is not supported on Windows 7 due to missing ALPN suppor...

启动grpc报错:HTTP/2 over TLS is not supported on Windows 7

.net core grpc报错:NotSupportedException: HTTP/2 over TLS is not supported on Windows 7 due to missing ALPN suppor...

IIS配置HTTPS

一、下载证书(我这里是下载的阿里云免费的证书)下载iis版本然后解压解压效果如下:二、安装证书(我这里是windows server...

nginx HTTPs的证书配置与301跳转

在 etc/nginx/ 目录下新建 ssl 文件夹来存放证书。把 crt 证书文件和 key 私钥文件上传到这里。然后就可以配置 Nginx 配置...

阿里云免费HTTPs证书申请

找到安全相关里边的ssl证书,点击购买然后选择免费版然后一直下一步下一步就可以购买成功了然后点击证书申请把你想要绑定的...

windows nginx配置HTTPs证书

windows nginx配置https证书还是比较简单的我这里申请的证书是阿里云的,去下载nginx版本的解压后有两个文件一个.key,一个....

七牛云cdn配置HTTPs

1:域名管理选择一个自己的域名2:点击配置3:拉到下面有个https配置4:选择免费证书即可5:成功等待

七牛云配置HTTPs支持

一.域名管理选择一个自己的域名二.点击配置

ng : 无法加载文件 C:\Users\WSJ\AppData\Roaming\npm\ng.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 HTTPs:/go.microsoft.com /fwlink/?LinkID=135170 中的.

错误提示:解决方法:在win10搜索那里搜索Windos PowerShell然后选择管理员身份打开,ps:一定要选择 以管理员身份运行打开...
我们太有限了。
排名
39
文章
10
粉丝
4
评论
3
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术