node.js学习笔记 11HTTP
创始人
2024-01-31 13:24:13
0

HTTP协议
    - 网络基础
    - 网络的服务器基于请求和响应的
    https:// 
        协议名 http ftp ...

    xxxxx.com 
        域名 domain
            整个网络中存在着很多个服务器,每一个服务器都有他自己的唯一标识,这个标识被称为ip地址 如192.168.1.17,但是ip地址不方便记忆,域名就相当于ip地址别名
     
    /hello/index.html
        网站资源路径

    1.当在浏览器中输入地址后发生了什么?
        1.DNS解析,获取网站的ip地址
        2.浏览器需要和服务器建立链接(tcp/ip)(三次握手)
        3.向服务器发送请求报文(http协议)
        4.服务器处理请求,并返回响应报文(http协议)
        5.浏览器将响应的页面渲染
        6.断开和服务器的连接(四次挥手)
    
    2.客户端如何和服务器建立(断开)连接
        - 通过三次握手和四次挥手
            - 三次握手(建立连接)
                - 三次握手是客户端和服务器建立连接的过程
                    1.客户端向服务器发送连接请求(SYN(同步标识符))
                    2.服务器收到连接请求,向客服端返回消息(SYN(申请与客户端通信),ACK(表示同意))
                    3.客户端向服务器发送同意连接的信息(ACK(表示同意))
            - 四次挥手(断开连接)
                    1.客户端向服务器发送请求,通知服务器数据发送完毕,请求断开连接(FIN(表示数据发完了))
                    2.服务器向客户端返回数据,知道了(ACK(表示知道了))
                    3.服务器向客服端返回数据,收完了,可以断开连接(FIN(数据收完了),ACK(同意断开连接))
                    4.客户端向服务器发数据,可以断开了(ACK(表示知道了))
请求和响应实际上就是一段数据,只是这段数据需要遵循一个特殊的格式,这个特殊的格式由HTTP协议来规定

TCP/IP 协议族(了解)
    - TCP/IP协议族中包含了一组协议
        这组协议规定了互联网中的所有通信的细节
    - 网络通信的过程由4层组成
        应用层
            - 软件的层面,浏览器服务器都属于应用层
        传输层
            - 负责对数据进行拆分,把大数据拆分为一个一个小包
        网络层
            - 负责给数据包添加信息
        数据链路层
            - 传输信息

    - HTTP协议就是应用层的协议,用来规定客户端和服务器间通信的报文格式的

    - 报文(message)是什么?
        - 浏览器和服务器之间通信是基于请求和相应的
            - 浏览器向服务器发送请求(request)
            - 服务器向浏览器返回响应(response)
                服务器向浏览器返回响应,相当于服务器给浏览器回信
                这个信在HTTP协议中就被称为报文
            - 而HTTP协议就是对这个报文的格式进行规定

        - 服务器
         - 一个服务器的主要功能:
            1.可以接收到浏览器发送的请求报文
            2.可以向浏览器返回响应报文

        - 请求报文(request)
            - 客户端发送给服务器的报文称为请求报文
            - 请求报文的格式如下:
                请求首行
                请求头
                空行
                请求体

                请求首行
                    GET /index.html?username=tonyHTTP/1.1
                    第一部分 get 表示请求的方式,get表示发送的get请求
                        现在常用的方式就是get和post请求
                        get请求主要用来向服务器请求资源
                        post请求主要用来向服务器发送数据

                    第二部分 /index.html?username=tony
                    表示请求资源的路径
                        ? 后面的内容叫做查询字符串
                        查询字符串是一个名值对结构,一个名字对应一个值
                            使用=连接,多个名值对之间使用&分割
                        
                        get请求通过查询字符串将数据发送到服务器
                            由于查询字符串会在浏览器地址栏直接显示,所以他安全性较差,同时,由于url地址长度有限制,所以get请求无法发送较大数据

                        post请求通过请求体来发送数据
                            - 在Chrome中通过 载荷 来查看
                            post请求通过请求体发送数据,无法在地址栏直接查看所以安全性较好

                            请求体的大小没有限制,可以发送任意大小的数据

                    第三部分 HTTP/1.1 协议的版本

                请求头
                - 请求头也是名值对结构,用来告诉服务器我们浏览器的信息
                - 每一个请求头都有它的作用:
                    Accept 浏览器可以接受的文件类型

                    Accept-Encoding 浏览器允许的压缩的编码

                    Accept-Language 客户端浏览器可以接受的语言

                    User-Agent 用户代理,他是一段用来描述浏览器信息的字符串
                空行
                    - 用来分隔请求头和请求体
                
                请求体
                    - post请求通过请求体来发送数据

        网页,css,js,图片这些资源会作为响应报文中的哪一部分发送响应体

        - 响应报文:
            响应首行
                HTTP/1.1 200 OK
                    200 响应状态码
                    OK 对响应状态码的描述
                    - 响应状态吗的规则
                        1xx 请求处理中
                        2xx 表示成功
                        3xx 表示请求的重定向
                        4xx 表示客户端错误
                        5xx 表示服务器错误
            响应头
                - 响应头也是一个一个的名值对结构,用来告诉浏览器响应的信息
                Content-Type 用来描述响应体的类型
                Content-Length 用来描述响应体的大小
            空行
                - 空行用来分隔响应头与响应体
            响应体
                - 服务端返回给客户端的内容

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...