一、什么是HTTP

HTTP也叫超文本传输协议(HyperText Transfer Protocol),它负责浏览器和服务器之间请求和响应的应用层通信协议。由于HTTP协议简单,实现容易,从它诞生开始就广受欢迎。HTTP使用最广泛的版本是HTTP 1.1。2015年5月以RFC 7540文件发表的HTTP2.0标准是现在推行的版本。

HTTP分为HTTP请求报文和HTTP的响应报文,下面由我来带大家简单学习一下HTTP。

二、HTTP请求报文

1、组成部分

有四个部分组成,分别如下

1.请求行(请求方法 路径 协议/版本)
2.请求头(Content-Type、Host(必选)、User-Agent、Accept-Charset、Accept-Encoding、Accept-Language等)
3.空行
4.其他消息体(这部分可选,可以没有)

2、命令行查看HTTP请求内容

就拿我们向百度首页发一个请求来看
首先我们在终端输入下面一行命令

curl -v "https://www.baidu.com"

回车,然后就会输出很多行信息回来,*开头的是注释,>开头的是请求,<开头的是响应(等下会讲)

请求情况如下

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

GET / HTTP/1.1 第一部分,请求行部分,GET是请求方法,/是路径, HTTP/1.1 是版本号;
Host: www.baidu.com 第二部分,请求头
User-Agent: curl/7.54.0 第二部分,请求头, 发送请求的应用程序名称是curl/7.54.0
Accept: / 第二部分,请求头, 浏览器可接受的MIME类型是接收任意类型
空行 第三部分,为了区分第二部分和第四部分
第四部分,没有要上传的数据,所以为空

3、用Chrome开发者工具查看 HTTP 请求内容

(1).空白页面输入http://www.baidu.com但不要按回车键 >>>浏览器主体内任意一个位置右键》》检查(Inspect)>>>选择Network>>>搜索框回车,就有很多请求答应信息

(2).点击http://www.baidu.com这个,操作如下图:

(3).然后点击Headers>>>Request Headers隔壁的view source按钮,步骤如下图

(4).就可以查看到请求信息啦,请求信息如下图:

chrome查看HTTP步骤三

三、关于curl

curl:是一个利用URL规则在命令行下工作的文件传输工具,它是一个强大的开发工具。具体用法请查看这篇文章curl网站开发指南

语法:curl(选项)(参数)

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

curl其他选项请查看这篇文章curl命令

四、HTTP响应报文

1、组成部分

响应报文也有四个部分组成,分别如下

1.响应行(协议/版本号 状态码 状态解释)
2.响应头(例如:Content-Length、Content-Type、Server、Date、Content-Type等)
3.空行
4.要下载的内容

2、命令行查看HTTP响应内容

还是查看刚才的curl命令

curl -v "https://www.baidu.com"
响应内容是以<开头,情况如下:

< 

HTTP/1.1 200 OK 是第一部分,响应行,HTTP/1.1 是版本号,200是状态码,OK是状态解释

从Accept-Ranges到Set-Cookie是第二部分,响应头,响应页面的相关信息,响应头具体说明情况,请看这里HTTP 响应头信息

空行 第三部分,为了区分第二部分和第四部分

HTML格式的文本组成了baidu的主页,第四部分

3、用Chrome开发者工具查看 HTTP 响应内容

(1).还是跟请求一样步骤一样,空白页面输入http://www.baidu.com但不要按回车键 >>>浏览器主体内任意一个位置右键>>>检查(Inspect)>>>选择Network>>>搜索框回车,就有很多请求答应信息

(2).还是跟请求一样步骤一样,点击http://www.baidu.com这个。

(3).这里开始不同啦,要注意哦。点击Headers>>>Response headers隔壁的view source按钮,步骤如下图

(4).这样我们就可以在Chrome开发者工具查看 HTTP 响应内容啦,具体如下图

五、前端面试HTTP知识点

1.请求方法有那些?

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

2.响应状态码分类:

1XX:信息,服务器收到请求,需要请求者继续执行操作(不常用)

2XX:成功,操作被成功接收并处理

3XX:重定向,需要进一步的操作以完成请求

4XX:客户端错误,请求包含语法错误或无法完成请求

5XX:服务器错误,服务器在处理请求的过程中发生了错误

六、参考资料:

[curl网站开发指南 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2011/09/curl.html)

[HTTP 响应头信息 | 菜鸟教程](HTTP 响应头信息 | 菜鸟教程)

[HTTP状态码 | 菜鸟教程](HTTP状态码 | 菜鸟教程)

winform接收http请求_HTTP基础入门相关推荐

  1. winform接收http请求_web前端面试题对答篇:HTTP fetch发送2次请求的原因?

    HTTP fetch发送2次请求的原因?面对这道出现频率较高的面试题,我想说的是:发送两次请求的情况确实存在,但这与你所使用的是不是http协议,所采用的是不是fetch真的没有一毛钱关系! 接下来, ...

  2. 【一学就会的ROS基础入门教程 】03-1 ROS基础编程:ROS工作空间的创建、话题topic的发布与接收、以及话题消息的自定义使用

    [一学就会的ROS基础入门教程 ]03-1 ROS基础编程:ROS工作空间的创建.话题topic的发布与接收.以及话题消息的自定义使用 文前白话 1.创建工作空间与功能包 关于工作空间的介绍 创建开发 ...

  3. Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程

    目录 一.Python 线程池前言 二.Python 线程池 ThreadPoolExecutor 常用函数 1.线程池 as_completed 函数使用 2.线程池 map 函数使用 3.线程池 ...

  4. form表单中根据值判断是否disabled_Java 0基础入门 (Html表单、表单元素)

    上一篇:Java 0基础入门 (Html标签的使用) 表单在网页中主要负责数据采集功能. 一.表单实际应用场景 百度搜索 5173注册 如上两张图,图中的黑色线条是我画上去的,如果按照黑线,在Excl ...

  5. Arduino零基础入门

    Arduino零基础入门 arduino学习笔记1 - 什么是arduino? 要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机. 1.什么是单片机?它与个 ...

  6. 网络安全之基础入门(一)

    前言:好久没有更新了,主要看了我之前的文章,觉得有些滥竽充数,以后我尽量保证每篇文章的质量,所以更新周期可能慢一点 基础入门 壹.基础概念 域名 1.什么是域名 域名(英语:Domain Name), ...

  7. Linux基础入门--驱动开发--USB

    Linux基础入门--驱动开发--USB 1.基本概念 2.组成结构 2.1 设备描述符 2.2 配置描述符 2.3 接口描述符 2.4 端点描述符 2.5 字符串描述符 3.管道 4.端点分类 4. ...

  8. WIFI基础入门--802.11--成帧细节(管理帧)--5

    WIFI基础入门--802.11--成帧细节--管理帧--5 1.概述 2.管理帧的结构 2.1 计算持续时间 2.2 帧主体 3.固定字段 3.1 Authentication Algorithm ...

  9. FPGA基础入门【12】开发板USB鼠标控制

    上一篇教程介绍了NEXYS4 开发板中UART串口通信的使用方式,这一篇介绍USB接口接收鼠标和键盘信号 FPGA基础入门[12]开发板USB鼠标控制 开发板USB芯片 信号时序图 鼠标初始化 逻辑设 ...

  10. WIFI基础入门--802.11k--无线局域网络频谱测量

    WIFI基础入门--802.11k--无线局域网络频谱测量 1.介绍 2.定义 3.缩写和首字母缩写 4.无线局域网无线电测量(Wireless LAN Radio Measurements) 4.1 ...

最新文章

  1. ibm750服务器维护,IBM 750服务器.PDF
  2. 简述泛型的上界和下界?
  3. java中pack函数_java - Java函数pack(),JFrame大小 - 堆栈内存溢出
  4. 计算广告 pdf_他创业20年死磕PDF一项业务,如今上市身家76亿:所有的突然牛逼,背后都是玩命死磕...
  5. 利用预渲染加速iOS设备的图像显示
  6. 留学计算机美国硕士,美国硕士留学计算机专业申请详细分析
  7. SharePoint Secure Store Service(SSSS)的使用(一)
  8. 【Oracle】解锁用户
  9. 数据结构c语言版编程软件,数据结构严蔚敏4版PDF下载_数据结构C语言版严蔚敏下载 完整版_当载软件站...
  10. 复杂UI卡顿问题没想到还能这么优化?
  11. 微信小程序 关于下载文件、打开文件预览文件(wx.downloadFile和wx.openDocument)
  12. 控制反转和依赖注入/ scop
  13. ArcGIS中坐标转换与投影变换
  14. Android实现垂直型的SeekBar
  15. 操作Oracle类型CLOB和BLOB
  16. HTML5期末大作业:日式料理网站设计——简洁日式料理餐饮(4页) HTML+CSS+JavaScript 父亲美食HTM5网页设计作业成品
  17. 2022-2028全球与中国电梯维修保养服务市场现状及未来发展趋势
  18. python我的世界脚本方块_ScriptBlockPlus下载
  19. 沁恒CH554 KEIL环境搭建
  20. 为什么现在流行resultful,webservice无人问津?

热门文章

  1. Win10配置FORTRAN环境 CodeBlocks下载安装教程
  2. 在C#中使用DevExpress中的ChartControl实现极坐标图
  3. Android学习之路
  4. android开机动画多长时间_Android开机动画及黑屏
  5. CKS学习笔记-Sysdig
  6. C++ HOOK实现全局键盘钩子的详细过程
  7. 软件开发必备英语汇总(持续更新)
  8. HTML网页设计制作大作业(div+css)~ 环境保护(5个页面)
  9. Android开发环境搭建
  10. vue使用vue-video-player插件播放视频