一、HTTP 请求

1. http请求操作/curl命令
  • curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"//GET获取操作
    请求内容
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
  • curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"//POST上传操作
    请求内容
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
  • curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"//POST上传带数据
    请求内容
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-urlencoded1234567890
2. 综上所得,请求一共包含以下部分
  • 1 动词 路径 协议/版本
    2 Key1: value1
    2 Key2: value2
    2 Key3: value3
    2 Content-Type: application/x-www-form-urlencoded
    2 Host: www.baidu.com
    2 User-Agent: curl/7.54.0
    3
    4 要上传的数据

    其中,

    (1)请求最多包含四部分,最少包含三部分,即第四部分数据可以为空。
    (2)第三部分永远都是一个回车,用来分隔第二、第四部分。
    (3)第一部分的动词包括GET(获取)/POST(上传,新增)/PUT(整体更新)/PATCH(局部更新)/DELETE(删除)/HEAD(获取资源的元数据)/OPTIONS(获取信息,关于资源的哪些属性是客户端可以改变的)等。
    (4)如果没有写路径,则默认为根目录(即 /)
    (5)第二部分中的的 Content-Type 标注了第 4 部分的格式
    (6)第一部分的路径,包含查询参数,但不包括锚点

    3. 使用Chrome浏览器查看http请求

    打开 Network
    地址栏输入网址
    在 Network 点击,查看 request,点击「view source」
    如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

二、HTTP 响应

1.http响应出现在请求结束后

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"//GET获取操作
获得的响应代码为:

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>
………………以下为网页html代码,略…………

2. http响应包含以下部分

  • 1 协议/版本号 状态码 状态解释
    2 Key1: value1
    2 Key2: value2
    2 Content-Length: 17931
    2 Content-Type: text/html
    3
    4 要下载的内容

    其中,

    第 2 部分中的 Content-Type 标注了第 4 部分的格式
    第 2 部分中的 Content-Type 遵循 MIME 规范
    第一部分的状态解释没什么用

    3. 关于响应的状态码

  • 1xx 消息
  • 2xx 表示成功
    200 表示普通成功(如GET获取时)
    204 表示创建成功(如POST提交时)
  • 3xx 表示重定向
    301 表示所访问的资源永久被移除
    302 表示所访问的资源临时被移除,以后还会回来
    304 表示资源未被修改,即客户端仍然具有以前下载的副本,不需要重新传输资源
  • 4xx 表示客户端错误
    404 请求所希望得到的资源未被在服务器上发现,但允许用户的后续请求
  • 5xx 表示服务器错误
    502 上游服务器接收到无效的响应

4. 使用Chrome浏览器查看http响应

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

转载于:https://www.cnblogs.com/EnochQin/p/9005161.html

2018-05-04 http入门相关推荐

  1. 【2018.05.04学习笔记】【linux基础知识10.1-10.5】

    2019独角兽企业重金招聘Python工程师标准>>> 10.1 使用w查看系统负载 w命令:查看cpu负载情况 [root@lgs-01 ~]# w11:20:20 up 1 mi ...

  2. 【跃迁之路】【473天】刻意练习系列232(2018.05.24)

    @(跃迁之路)专栏 叨叨两句 技术的精进不能只是简单的刷题,而应该是不断的"刻意"练习 该系列改版后正式纳入[跃迁之路]专栏,持续更新 一.SQL [跃迁之路]SQL语句刻意练习( ...

  3. 【2018版】Docker入门视频课程-汤小洋-专题视频课程

    [2018版]Docker入门视频课程-217人已学习 课程介绍         本课程以通俗易懂的方式讲解Docker容器技术,适合初学者的教程,让你少走弯路! 掌握Docker容器技术,教学全程采 ...

  4. 新手C#string类常用函数的学习2018.08.04

    ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower ...

  5. Microsoft Artificial Intelligence Conference(2018.05.21)

    时间:2018.05.21 地点:北京嘉丽大酒店 转载于:https://www.cnblogs.com/xuefeng1982/p/10335943.html

  6. (05)FPGA入门条件

    (05)FPGA入门条件 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA入门条件 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1)FPGA入 ...

  7. 在Ubuntu 18.04 LTS 入门 ROS Melodic 机器人 操作系统

    在Ubuntu 18.04 LTS入门ROS Melodic版机器人操作系统 在ROS Melodic中推荐使用catkin_tool: $ sudo apt-get install python-c ...

  8. ubuntu20.04基础入门日记V1.0

    ubuntu20.04基础入门日记V1.0 欢迎入坑 操作界面 软件安装 好了,开始正题,主攻基础指令 文件列表 归档压缩 链接 用户与用户组 修改文件权限 修改文件属主和属组 小组任务 实现网络拓扑 ...

  9. Web全栈~04.css入门

    Web基本笔记~04.css入门 上一期 CSS 的引入方式 内联样式(行内样式) <p style="background: orange; font-size: 30px;&quo ...

  10. SSH Chapter 04 Hibernate 入门

    SSH Chapter 04 Hibernate入门 笔记 Hibernate 知识体系图: 本章目标: 理解类和表的映射关系 掌握单表的增删改 掌握按主键查询 理解持久化对象的状态及其转换 技术内容 ...

最新文章

  1. linux 循环shell脚本,shell脚本的使用---for循环
  2. 语音技术正在改变计算行业
  3. html网页滚轮滑动页面,JQuery实现鼠标滚轮滑动到页面节点
  4. JavaScript要点 (二) 使用误区
  5. Python最佳代码实践:性能、内存和可用性!
  6. Android NDK 环境搭建
  7. hls之m3u8、ts流格式详解
  8. 微软Edge扩展工具箱旨在将Chrome扩展带至Edge
  9. 快速理解和使用 ES7 await/async
  10. linux安装docker部署java项目
  11. HTML5应用程序网站视差模板下载
  12. rust地基蓝图在哪找_Rust错误处理的思考
  13. java设计思想和设计模式,快来收藏!
  14. Python 路径问题--No such file or directory
  15. aodv-uu 源码解读
  16. win7修复计算机无法修复工具栏,win7任务栏消失怎么办?win7任务栏消失的两种恢复方法...
  17. 计算机桌面来回闪烁,电脑桌面图标一直闪
  18. Android 蓝牙驱动专题分析(2)--- 蓝牙驱动代码流程、kernel dump、tombstone问题分析
  19. c语言中next如何用,C++ STL prev()和next()函数用法详解
  20. 手游传奇有挂吗_传奇手游辅助工具

热门文章

  1. 一个简单的txt读取与导出
  2. [渝粤教育] 天津科技大学 人工智能导论 参考 资料
  3. 论文笔记:Semantic Relation Reasoning for Shot-Stable Few-Shot Object Detection
  4. 矩阵分析 (七) 矩阵特征值的估计
  5. moonlight不显示鼠标指针
  6. 【项目3-2】多肉植物网站
  7. linux简单的操作命令
  8. HUST 1585 排队
  9. npm创建react项目
  10. kaldi GMM模型解码指令 gmm-latgen-faster详解