• Linux下的网络编程——B/S模型HTTP(四)


    前言:

    HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如FirefoxInternet ExplorerGoogle ChromeSafariOpera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。 

    目录

    HTTP协议基础:

     1.请求消息:

    2.响应消息

    3.请求方法:

    (1)GET

    (2)POST

    4.状态码:

    4.GET与POST的区别:

    5.默认端口号:


    HTTP协议基础:


            HTTP,超文本传输协议( HyperText Transfer Protocol )。互联网应用最为广泛的一种网络应用层协议。它可以减少网络传输,使浏览器更加高效。
            通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。

     1.请求消息:

    请求消息:请求行        请求头    空行         请求体


    浏览器—>发给—>服务器。主旨内容包含4部分: 

    请求行:说明请求类型,要访问的资源,以及使用的http版本

    请求头:说明服务器要使用的附加信息,

    空行:必须!,即使没有请求数据·

    请求数据:也叫主体,可以添加任意的R他数据。

    1. 1. GET /hello.c Http1.1\r\n
    2. 2. Host: localhost:2222\r\n
    3. 3. User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/201001 01 Firefox/24.0\r\n
    4. 4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
    5. 5. Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    6. 6. Accept-Encoding: gzip, deflate\r\n
    7. 7. Connection: keep-alive\r\n
    8. 8. If-Modified-Since: Fri, 18 Jul 2014 08:36:36 GMT\r\n
    9. 【空行】\r\n

    2.响应消息

            响应消息:状态行        消息报头        空行         响应正文

    服务器—>发给―>浏览器。主旨内容包含4部分:


    状态行:包括http协议版本号,状态码,状态信息

    消息报头:说明客户端要使用的一些附加信息

    空行:必须

    响应正文:服务器返回给客户端的文本信息

    3.请求方法:

    (1)GET

            请求指定的页面信息,并返回实体主体。

    (2)POST

            向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。

    1. 1. Http1.1 200 OK
    2. 2. Server: xhttpd
    3. Content-Type:text/plain; charset=iso-8859-1
    4. 3. Date: Fri, 18 Jul 2014 14:34:26 GMT
    5. 5. Content-Length: 32 ( 要么不写 或者 传-1, 要写务必精确 ! )
    6. 6. Content-Language: zh-CN
    7. 7. Last-Modified: Fri, 18 Jul 2014 08:36:36 GMT
    8. 8. Connection: close
    9. \r\n
    10. [数据起始。。。。。
    11. 。。。。
    12. 。。。数据终止]

    4.状态码:

            200:正确返回

            401:用户权限不足

            404:请求的资源不存在

            500:服务端出错

            300系列:重定向

    4.GET与POST的区别:

    在本质上两者都是通过tcp进行通信传输的顶层协议,但是

    GET请求参数在请求行中,在url后,POST请求参数在请求体中

    GET请求的url长度有限制,POST没有

    5.默认端口号:

    http默认端口号:80,https默认端口号443,ftp默认端口号21

  • 相关阅读:
    Opencv笔记
    model_state_dict网络部分参数的更新
    vue3基础语法
    【ACWing】139. 回文子串的最大长度
    第二证券|股票做短线要关注什么?
    [问题]springboot启动时报Could not connect to SMTP host
    能源计量器具的种类划分
    【动态规划】速解简单多状态类问题
    【C++编程语言】之STL常用算法之 排序算法 sort()函数 random_shuffle()函数 merge()函数 reverse()函数
    《Grokking Deep Reinforcement Learning》笔记(Chapter 11-12)
  • 原文地址:https://blog.csdn.net/m0_63168877/article/details/133234890