服务器无法在发送 http 标头之后修改 cookie_HTTP入门笔记

HTTP 协议是互联网的基础协议,也是现在网页开发的必备知识,2015年出的最新版本 HTTP/2 更是成为互联网技术热点。

本文介绍了 HTTP 协议的基础知识以及浏览器和web服务器之间请求和响应的详细信息。

1.什么是HTTP?

HTTP代表超文本传输协议。 这是互联网中数据通信的基础, 数据通信以客户端发送的请求开始,并以从Web服务器接收的响应结束,而HTTP的作用就是指导浏览器和服务器如何进行沟通。

HTTP通信过程简图:

b9d7688187b2665b18c610d0e8a13b65.png
  • 客户端(通常为浏览器)负责发起请求
  • web服务器在 80 端口接收请求
  • web服务器之后负责响应请求的内容
  • 浏览器负责下载响应内容

2.curl命令

curl是一种命令行工具,作用是发出网络请求,然后得到响应和提取数据,显示在"标准输出"(stdout)上面。后面所说的请求,就是通过使用 curl 命令来实现的。比如输入:

curl -s -v -- "www.sina.com"

这一行命令,输出的请求内容为:

> GET / HTTP/1.1
> Host: www.sina.com
> User-Agent: curl/7.55.0
> Accept: */*
>

响应内容为:

< HTTP/1.1 200 OK
< Date: Sun, 03 Mar 2019 06:17:38 GMT
< Content-Type: text/html
< Content-Length: 23568
< Last-Modified: Sun, 03 Mar 2019 06:16:24 GMT
< Connection: keep-alive
< ETag: "5c7b7138-5c10"
< Expires: Sun, 03 Mar 2019 06:22:38 GMT
< Cache-Control: max-age=300
< Accept-Ranges: bytes
< Set-Cookie: TS0106d18b=0103cff18ca232a2464de8b94e660a71bf04913ec10acc3f4e7336f5c7620c43c          b93a3a1e3e5b394e3b5f0d8d9c8c835e649efa77c; Path=/
<

想了解关于 curl 里的参数,推荐使用explainshell.com来查看解释,很快捷很详细哦。

3.请求的格式

来自计算机客户端的请求一般包含以下几个部分:

1 请求行:动词 路径 协议/版本 比如: GET /index.html HTTP/1.1
2 请求头:Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: http://www. baidu.com
2 User-Agent: curl/7.54.0
3 回车:没有内容
4 消息体:要上传的数据
  1. 请求最多包含四部分,最少包含三部分,最少三部分时消息体可以为空,且第三部分永远是一个回车(n)
  2. 动词有 GET(从服务器获取资源,一项或多项) POST(在服务器新建一个资源) PUT(在服务器整体更新资源,客户端提供改变后的完整资源)PATCH(在服务器局部更新资源,客户端提供改变的属性) DELETE (从服务器删除资源) 等。如果想用POST,就输入:curl -X POST -d "1234567890" -s -v -- "https://www.sina.com"
  3. 这里的路径包括「查询参数」,但不包括「锚点」
  4. 如果你没有写路径,那么路径默认为 /
  5. 第 2 部分中的 Content-Type 标注了第 4 部分的格式

4.响应的格式

来自服务器的响应一般包含以下几个部分:

1 状态行:协议/版本号 状态码 状态描述
2 响应头:Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3 回车:没有内容
4 消息体:要下载的内容
  1. 响应都有4个部分,具体其实跟请求的格式差不多
  2. 常见的状态码:
200:请求成功
301:请求的资源被永久转移到其他地方(重定向)
404:请求的资源不存在
500:内部服务器错误

3.状态码分类

1开头:信息,服务器已经收到请求,需要请求者继续执行操作(不常用)
2开头:成功,操作被成功接收并处理
3开头:重定向,需要进一步操作来完成请求
4开头:客户端错误,请求包含语法错误或无法完成请求
5开头:服务器错误,服务器在处理请求时发成了错误

4.状态码列表

65870b73a1c366c94652fc288ddb5a83.png

bda7904e02a49945778764d325664e17.png

5.如何在Chrome上检查HTTP请求和响应?

将Google Chrome视为常用浏览器,在其他浏览器中查看详细信息的过程仍然相同。

  1. 在Google Chrome中打开网页,然后转到"更多工具 >开发者工具"菜单。
  2. 您也可以通过右键单击页面打开开发人员控制台,然后选择“检查”选项。
  3. 转到“Network”选项,然后重新加载页面。 现在,您将看到页面上每个组件的加载时间。
  4. 点击“Show Overview”图标以删除时间线,以便您可以清楚地查看其他详细信息。
  5. 单击左侧栏上的页面URL,然后转到“Response”选项。 (您还可以在“Preview”选项下查看相同的详细信息)。

d9f9f726d5787864ef5511ccfb3b62ae.png

您可以在上面的部分中详细了解请求和响应的详细信息。 “Headers”选项将显示所选项目的请求和响应的HTTP标头信息的详细信息。

6.HTTP 标头检查工具

与Chrome类似,还有许多其他免费工具可用于检查HTTP标头中收到的响应代码。 例如,转到此HTTP标头检查工具,输入您要检查的任何URL,然后单击“提交”按钮。

例如输入https://www.baidu.com,您将看到如下标头的详细信息:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 277
Content-Type: text/html
Date: Sun, 03 Mar 2019 07:27:41 GMT
Etag: "575e1f6f-115"
Last-Modified: Mon, 13 Jun 2016 02:50:23 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值