什么是HTTP及相关知识?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是HTTP及相关知识?相关的知识,希望对你有一定的参考价值。

http就是一种协议,计算机之间要共同遵守协议的规则,彼此之间才能相互通信。

协议的使用流程:

http客户端发起请求(比如用浏览器打开一个网页),然后就创建了到服务器的一个端口,默认是80端口,然后http服务器就在端口监听客户端请求,一旦收到请求,http服务器就会像客户端返回一个状态和内容。

在输入网址后回车,在很短的时间内整个页面就被渲染出来了,但在这个里面计算机和浏览器做了许许多多事情。

首先,进行域名解析,比如说谷歌浏览器,首先他会搜索自身的DNS缓存,看有没有缓存的域名解析,如果有缓存,那就看有没有过期,如果过期,这个解析就结束了,在浏览器中可以通过在地址栏中输入chrome://net-internet/#dns来查看。

如果浏览器中没有缓存,那么他会搜索操作系统自身的DNS缓存。

如果操作系统也没有找到DNS缓存,那么就会常试读取本地的HOST文件。

如果在host文件里也没有找到对应的配置项,那么浏览器就会发起一个DNS的一个系统调用,就会向本地主库服务器,一般来说是宽带运营商来提供的,发起的一个域名解析请求。

而宽带运营商服务器首先会查看本身的缓存。

如果没有找到本地缓存,运营商服务器就会发起一个迭代DNS解析的请求,这样呢运营商的DNS服务器就拿到了ip地址,并返回给操作系统内核同时缓存起来。

而操作系统内核把结果返回给浏览器,最终浏览器拿到了对应域名的IP地址。

(可以看出资源请求时所耗费的时间成本)

浏览器获得域名对应的IP地址后,就会发起HTTP的三次握手。

那浏览器就会以一个随机端口向服务器的Web程序发起一个TCP的连接请求,这个TCP请求通过层层的路由设备,到达服务器端以后,进入到网卡,然后进入到内核的TCP/IP协议栈,还有可能要经过防火墙的过滤,最终到了Web服务端,然后就建立起TCPIP的连接。

三次握手都做了些什么,

客户端向服务器端说,咱俩可以唠唠吗?然后服务器端说,咱俩可以唠唠,然后客户端说,那咱俩开唠吧!

TCP/IP建立起连接后,浏览器就可以向服务器发送HTTP请求了。

服务器端接收到这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器。

浏览器拿到了完整的html页面代码,在解析和渲染这个页面的时候,里面的,jscss,图片等静态资源,他们也是一个个HTTP请求,都需要经过上面的步骤。

浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户。

HTTP协议主要有哪些组成部分?

我们可以把HTTP请求拆分开,分为请求和响应。

无论请求和响应都会发送http头和正文信息。

http头发送的是一些附加信息:内容类型,服务器发送响应的时间,http状态吗。

正文就是用户提交的表单数据或者返回的数据。

HTTP的请求方法:

GET方法,是用于读取数据。

POST方法,是向指定的资源提交数据,比如新上传一个视频,新添加一个用户等。

PUT方法,更新,比如更新用户的一个头像等。

DELETE方法,删除,我们请求服务器来删除我们标识的某个资源。

状态码:

状态就是在服务器端返回给浏览器的时候,告诉浏览器我当前的一个请求的成功与否。

一般由3位数字组成,第一个数字定义了一个响应的类别,并且有5中可能的取值12345.

1xx表示请求已经接收了,正在进行处理。

2xx表示请求已经成功,并且成功地处理掉了。

3xx表示重定向,表示完成请求需要其他的一些资源。

4xx表示客户端错误,请求时有语法错误等。

5xx表示服务器端的错误,服务器端不能实现这个合法的请求。

常用的状态码的值:

200表示客户端请求时成功的。

400表示客户端请求的语法错误,服务器端不能理解。

401表示这个请求没有经过授权。

403表示服务器端收到这个请求,但是拒绝为他服务。

404表示没找到,请求的资源不存在。

500表示服务器端发生一个不可预期的错误。

503表示服务器端当前还不能处理这个请求。


本文出自 “lss8025404” 博客,请务必保留此出处http://lss18234826994.blog.51cto.com/11518794/1790826

以上是关于什么是HTTP及相关知识?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP缓存原理及相关知识-CDN

HTTP缓存原理及相关知识-流媒体主流格式及相关协议

HTTP缓存原理及相关知识

事件及相关知识

事件及相关知识

计算机启动过程及相关知识BIOS CMOS等