HTTP协议三次握手与四次挥手-node.js初级

Posted henu_GM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议三次握手与四次挥手-node.js初级相关的知识,希望对你有一定的参考价值。

浏览器访问网站的基本流程:

1、用户输入网址

2、浏览器请求DNS服务器,获取域名对应的IP地址(DNS服务器就是有该网络中所有域名和对应主机号的可以转换的一种服务器)

3、请求连接该IP地址的服务器

4、发送资源请求(遵循HTTP协议)

5、web服务器接收到请求,解析请求,判断用户意图

6、获取用户想要的资源(从web服务器连接的数据库中获取)

7、将资源返回给http服务器程序

8、http服务器将资源数据通过网络发送给浏览器

9、浏览器解析呈现请求的数据

http协议简介:

        Http协议就是超文本传输协议,就是浏览器与web服务器传输数据格式的协议,HTTP协议是一个应用层协议。

        HTTP协议是基于TCP协议的,发送数据之前要建立好连接(TCP传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议)

        HTTP是万维网的数据通信基础。设计HTTP最初的目的是为了提供一种发布和接收html页面的方法

http请求报文格式:

         1、请求行[请求方法 资源路径 版本\\r\\n] GET /index.html HTTP/1.1\\r\\n ​

         2、请求头[头名: 头值\\r\\n] Host: localhost ​

         3、空行 [\\r\\n] "\\r\\n" ​

         4、请求体[浏览器给服务器发送的数据]

记住格式即可:

            POST / HTTP/1.1
            Host: localhost:8080
            Connection: keep-alive
            Content-Length: 41
            Cache-Control: max-age=0
            Upgrade-Insecure-Requests: 1
            Origin: null
            Content-Type: application/x-www-form-urlencoded
            User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
            Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
            Accept-Encoding: gzip, deflate, br
            Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

            username=laozhuang&password=sasjdnflkjdsg    请求体    客户端提交的数据

http响应报文格式:

        1、响应行[版本 状态码 说明\\r\\n]   必须有,HTTP/1.1 200 OK\\r\\n
        2、响应头[头名: 头值\\r\\n]   Content-Type: text/html;charset=utf-8\\r\\n     Server: BWS/1.1\\r\\n
        3、空行[\\r\\n]   "\\r\\n"
        4、响应体[html文本或者资源数据, 即网页内容]

也是记住格式就成:

		HTTP/1.1 200 OK      响应行

            协议版本  HTTP/1.1
            状态码   
                2xx 成功  200 OK
                3xx 重定向 
                4xx 客户端错误 404 Not Found
                5xx 服务器错误 503 Service Unavailable

            状态说明
            HTTP
        Cache-Control: private       响应头
            缓存控制命令
        Content-Encoding: gzip
            相应的内容是压缩的,通过gzip
        Content-Type: text/html;charset=utf-8
            响应体的类型:网页编码utf-8
        Date: Fri, 06 Apr 2018 09:05:27 GMT
            日期 东八区时间 
            服务器回复响应报文的时间 -- 格林威治时间
        Server: BWS/1.1
            服务器名称
        分割符"\\r\\n"         空行
        网页内容     响应体

TCP/IP模型的三次握手与四次挥手:(了解即可)

http协议是基于TCP/IP协议,浏览器与服务器建立连接时,发生三次握手:

 浏览器与服务器断开连接时,发生四次挥手

 OSI七层模型(了解即可)

        OSI七层模型,是国际标准化组织(ISO)制定的一种用于计算机或者通信系统间互联的标准体系,简单来说,就是两台计算机之间进行通信的时候,经历了那些工作


         了解完网络基础,下一步就要理解Ajax的请求数据方式了,下一篇就写!

以上是关于HTTP协议三次握手与四次挥手-node.js初级的主要内容,如果未能解决你的问题,请参考以下文章

TCP三次握手与四次挥手

TCP三次握手与四次挥手

TCP协议的三次握手与四次挥手

春节日更TCP协议的三次握手与四次挥手

三次握手与四次挥手

王凯:TCP协议中的三次握手与四次挥手