本文包含四个部分,简要介绍HTTP请求、HTTP响应、chrome开发者查看、与CURL命令。

Part1:HTTP请求

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

2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。

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

4PUT从客户端向服务器传送的数据取代指定的文档的内容。

5DELETE请求服务器删除指定的页面。

6CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

7OPTIONS 允许客户端查看服务器的性能。8TRACE回显服务器收到的请求,主要用于测试或诊断。

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:
l 请求方法URI协议/版本
l 请求头(Request Header)
l 请求正文2 部分中的 Content-Type 标注了第 4 部分的格式

POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

Part2:HTTP响应

在接收和解释请求消息后,服务器会返回一个HTTP响应消息。与HTTP请求类似,HTTP响应也是由三个部分组成,分别是:状态行,消息报头,相应正文。

常见状态码:

状态码:由3位数字组成,第一个数字定义了响应的类别

1xx:指示信息,表示请求已接收,继续处理

2xx:成功,表示请求已被成功接受,处理。

  • 200 OK:客户端请求成功
  • 204 No Content:无内容。服务器成功处理,但未返回内容。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况。不会刷新页面。
  • 206 Partial Content:服务器已经完成了部分GET请求(客户端进行了范围请求)。响应报文中包含Content-Range指定范围的实体内容

3xx:重定向

  • 301 Moved Permanently:永久重定向,表示请求的资源已经永久的搬到了其他位置。
  • 302 Found:临时重定向,表示请求的资源临时搬到了其他位置
  • 303 See Other:临时重定向,应使用GET定向获取请求资源。303功能与302一样,区别只是303明确客户端应该使用GET访问
  • 307 Temporary Redirect:临时重定向,和302有着相同含义。POST不会变成GET
  • 304 Not Modified:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。

4xx:客户端错误

  • 400 Bad Request:客户端请求有语法错误,服务器无法理解。
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务
  • 404 Not Found:请求资源不存在。比如,输入了错误的url
  • 415 Unsupported media type:不支持的媒体类型

5xx:服务器端错误,服务器未能实现合法的请求。

  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
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: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 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>
...

Part3:用chrome查看内容

转自:饥人谷

请求:

  1. 打开 Network
  2. 地址栏输入网址
  3. 在 Network 点击,查看 request,点击「view source」
  4. 点击「view source」
  5. 点击「view source」
  6. 点击「view source」
  7. 终于点了?可以看到请求的前三部分了
  8. 如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

响应

  1. 打开 Network
  2. 输入网址
  3. 选中第一个响应
  4. 查看 Response Headers,点击「view source」,点击「view source」,点击「view source」
  5. 你会看到响应的前两部分
  6. 查看 Response 或者 Preview,你会看到响应的第 4 部分

Part4:CURL命令

一、查看网页源码

直接在 curl 命令后加上网址,就可以看到网页源码。

二、自动跳转

有的网址是自动跳转的。使用 -L 参数,curl 就会跳转到新的网址。

三、显示头信息

-i 参数可以显示 http response 的头信息,连同网页代码一起。-I 参数则只显示 http response 的头信息。

四、显示通信过程

-v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。

五、发送表单信息

发送表单信息有 GET 和 POST 两种方法。GET 方法相对简单,只要把数据附在网址后面就行。

六、HTTP动词

curl 默认的 HTTP 动词是 GET,使用 -X 参数可以支持其他动词。

...

键入 curl --help 便可查看完整使用方式

显示请求_学习记录:HTTP的响应与请求amp;Curl相关推荐

  1. QT子线程实现串口通信_学习记录

    QT子线程实现串口通信_学习记录 1 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容 ...

  2. 取消发送option请求_【JavaWeb】HTTP协议的请求与响应

    HTTP协议 超文本传输协议 Hyper Text Transfer Protocol HTTP的作用 规范浏览器与服务器的数据交换的格式思考:没有HTTP协议会怎样?没有 HTTP 协议也可以,但是 ...

  3. C++高级编程(第3版)_学习记录

    <C++高级编程(第3版)> Professional C++, Third Edition [美]Narc Gregoire 著,张永强 译,清华大学出版社,2015.5第1版 文章目录 ...

  4. nginx post请求超时_nginx记录分析网站响应慢的请求(ngx_http_log_request_speed)

    nginx模块ngx_http_log_request_speed可以用来找出网站哪些请求很慢,针对站点很多,文件以及请求很多想找出哪些请求比较慢的话,这个插件非常有效.作者的初衷是写给自己用的,用来 ...

  5. ajax将响应结果显示到iframe,脚本化HTTP 取得响应 指定请求

    脚本化HTTP 下面将会用js代码操纵HTTP 下面将会说明在没有致使web浏览器从新加载任何窗口或者窗体的状况下,脚本实现web浏览器和服务器之间的通讯. ajax:为一种找早起避免页面重载而动态更 ...

  6. HRS 请求走私 学习记录

    前言: 其实http 请求走私,去年火起来的时候就有了解了,也自己看过一些portswigger 上面的视频和文章,但是没有自己动手来实践,这次来自己动手来实践一下. 0x01 什么是请求走私: HT ...

  7. u3d005坦克大战_学习记录

    主要内容: 1.刚体.速度移动 2.自定义操作 3.自动销毁 4.调用 其他游戏物体挂载的脚本_非公共方法2() 5.音乐播放器获取 6.一段音频获取 7.通过字符串获取组件 8.3d的UI _血条制 ...

  8. python和pygame游戏开发指南_学习记录

    <python和pygame游戏开发指南> Making Games With Python and Palme [美]Ai Sweigart 著,李强 译,2015.12第一版 文章目录 ...

  9. Java面向对象编程(第2版)_学习记录

    <Java面向对象编程(第2版)> 孙卫琴 编著 文章目录 一.介绍 (一)平台与开发环境 (二)一些知识 (三)数组 二.类的生命周期 (一)类的加载 1. 加载 2. 连接 3. 初始 ...

最新文章

  1. 有声专栏-宏基因组专业词汇讲解
  2. Linux 应用程序 嵌汇编,Linux下嵌入汇编代码调用API(using fork())
  3. 2017.10.3北京清北综合强化班DAY3
  4. ubuntu 下通过 sh 命令运行脚本产生如下错误:[: y: unexpected operator
  5. 通过composer安装阿里大于接口扩展
  6. 实例27:python
  7. PyG图神经网络框架学习--示例介绍
  8. 应用程序进程启动过程
  9. Java 中的细节补充
  10. 线性代数的相关计算(numpy)
  11. 工具之wireshark保存rtp数据
  12. java requirenonnull_Java null判断新方法:Objects.requireNonNull 你过用吗?
  13. 《数学之美》—自然语言处理
  14. 连云港师范专科学校计算机老师,喜报:我校学生在2021年中国大学生计算机设计比赛江苏省赛中获一等奖...
  15. gitlab安装配置
  16. matlab中怎么正弦计算,matlab计算结果中的正弦余弦问题
  17. 三星s3 android8.0,三星最新安卓8.0升级计划:这款老机子有戏
  18. macport 安装使用
  19. python随机森林特征重要性_基于随机森林识别特征重要性(翻译)
  20. wan口设置已断开(服务器无响应),无线路由器wan口设置显示已断开

热门文章

  1. swarm部署集群_WildFly Swarm –将Java EE应用程序部署为独立的Jar
  2. Spring Boot CommandLineRunner和ApplicationRunner
  3. MicroProfile OpenAPI上的Swagger UI
  4. 在JDK 11中启动单文件源代码程序
  5. java ee cdi_Java EE CDI bean范围
  6. jvm类加载机制和类加载器_在JVM之下–类加载器
  7. 引入ReactiveInflux:用于Scala和Java的无阻塞InfluxDB驱动程序,支持Apache Spark
  8. 线程并发库和线程池的作用_并发–顺序线程和原始线程
  9. 基准测试:Java 8 Lambda和流如何使您的代码慢5倍
  10. JEP 277“增强弃用”非常好。 但这是一个更好的选择