自学内容网 自学内容网

http请求响应详解

http介绍

http协议:

Http”协议称为是“超文本传输协议”(HTTP-Hypertext transfer protocol)。它定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎么样把文档传送给浏览器。

https协议:

传统的HTTP协议,数据是以明文的形式在网络上传输,意味着一些重要信息(如账户信息、支付信息)可能会被有心人攻击造成泄露。而为了解决这个问题,HTTPS通过使用安全套接字层(SSL,Secure Sockets Layer)或传输层安全(TSL,Transport Layer Security)协议对HTTP进行加密,从而在数据传输过程中提供加密和认证保护。

curl命令:

使用 -v(verbose)选项可以查看请求和响应的详细信息,包括请求头和响应头:

curl -v http://example.com

使用 -O 选项下载文件并保存为原始文件名:

yum源

CentOS

curl -O http://example.com/file.zip

#下载yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tencent.com/repo/centos7_base.repo

curl -I 命令用于发送 HTTP HEAD 请求,并仅获取响应头,而不下载响应体。

curl -I http://example.com

curl -i 命令用于发送 HTTP 请求并显示响应的 HTTP 头和响应体。

curl -i http://example.com

HTTP请求格式

请求行(Request line):包括请求方法、URL和协议版本。

请求方法(Request method):表示要执行的操作,常见的方法有GET、POST、PUT、DELETE等。
URL(Uniform Resource Locator):表示要访问的资源路径。

[root@VM-4-14-centos ~]# curl -v www.baidu.com
* About to connect() to www.baidu.com port 80 (#0)
*   Trying 180.101.50.188...
* Connected to www.baidu.com (180.101.50.188) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.baidu.com
> Accept: */*
 

在这个示例中:

请求行包括GET方法URL为/ 协议版本为HTTP/1.1

请求头部包括HostUser-AgentAccept、等字段。

请求体为空,因为这是一个GET请求。

Http响应格式

  • 状态行:HTTP/1.1 200 OK 表示HTTP版本是1.1,状态码是200,表示请求成功。
  • 响应头部:包含日期、服务器类型、内容长度和内容类型等信息。
  • 空行:头部和响应体之间的空行。
  • 响应体:实际返回的数据,这里是一个简单的HTML页面。

< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: keep-alive
< Content-Length: 2443
< Content-Type: text/html
< Date: Wed, 06 Nov 2024 18:42:59 GMT
< Etag: "588603eb-98b"
< Last-Modified: Mon, 23 Jan 2017 13:23:55 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content                                                                       =IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r                                                                       /www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div cla                                                                   

常见的http请求:

GET:用于从服务器获取资源,也是最常见的请求方式。GET请求将请求的参数附加在URL的末尾,发送给服务器。
POST:用于向服务器提交数据,一般用于发送表单数据。POST请求将请求的参数放在请求的主体中,而不是URL中。
PUT:用于向服务器上传文件或更新资源。PUT请求会将请求的数据存储在服务器上指定的位置。
DELETE:用于删除服务器上的资源。
HEAD:用于获取服务器对资源的头部信息,而不获取实际的资源内容。
OPTIONS:用于获取服务器支持的请求方法。
 

post与get的区别

应用层协议里的 GET 和POST 有啥区别,GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。长的说:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok

GET 请求的数据会附在URL 之后(就是把数据放置在 HTTP 协议头中),以?分割URL 和传输数据,参数之间以&相连,如:login.action?name=zhagnsan&password=123456。POST 把提交的数据则放置在是 HTTP 包的包体中。

实验演示区分get与post请求

区别:

1.get请求方式,表单中的消息会在url中暴露,参数有限制,因为url不能太长。

简单的 HTML 页面,使用 GET 请求提交姓名和密码

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单的 GET 请求示例</title>
</head>
<body>

    <h1>用户信息</h1>
    <form action="https://example.com/api" method="GET">
        <label for="name">姓名:</label>
        <input type="text" id="name" name="name" required>
        <br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required>
        <br><br>
        <button type="submit">提交</button>
    </form>

</body>
</html>

post请求:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>POST 请求示例</title>
</head>
<body>

    <h1>用户信息</h1>
    <form action="https://httpbin.org/post" method="POST">
        <label for="name">姓名:</label>
        <input type="text" id="name" name="name" required>
        <br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required>
        <br><br>
        <button type="submit">提交</button>
    </form>

</body>
</html>
~

查看请求体

在请求详情中,找到“请求负载”(Request Payload)或“表单数据”(Form Data)部分。这部分将显示您提交的所有数据,包括字段名称和对应的值。


原文地址:https://blog.csdn.net/m0_65442322/article/details/143583585

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!