前端 | HTTP相关知识的学习

本文目录

  • 什么是HTTP
  • HTTP 请求
  • HTTP 响应
  • curl 命令

什么是HTTP

维基百科的解释

主要流程为:浏览器发起请求 > 服务器接受请求 > 服务器响应 > 浏览器下载响应内容

HTTP 请求

  1. HTTP请求方法
    HTTP/1.1协议中共定义了八种方法:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT。

  2. HTTP请求格式

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 要上传的数据

例如:

GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,en-US;q=0.8,zh-CN;q=0.7,zh;q=0.6

  1. 使用Chrome开发者工具查看 HTTP 请求内容
    1 在Chrome中按下F12或在页面右键,点击检查。
    2 切换到Network标签页。
    3 在地址栏输入完整的URL,回车。
    4 此时Network标签页中会显示本次操作的所有请求。
    5 点击所需要查看的请求,展开Request Headers,点击view source。
    6 显示的内容即为所需查看的 HTTP 请求内容

HTTP 响应

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

例如:

HTTP/1.1 200 OK
Bdpagetype: 2
Bdqid: 0xb405678a0002641c
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Tue, 02 Oct 2018 04:29:18 GMT
Expires: Tue, 02 Oct 2018 04:29:18 GMT
Server: BWS/1.1
Set-Cookie: BDSVRTM=190; path=/
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=1447_21099_26350_20719; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
  1. 状态码
  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误
  1. 使用Chrome开发者工具查看 HTTP 响应内容
    1 在Chrome中按下F12或在页面右键,点击检查。
    2 切换到Network标签页。
    3 在地址栏输入完整的URL,回车。
    4 此时Network标签页中会显示本次操作的所有响应。
    5 点击所需要查看的响应,展开Response Headers,点击view source。
    6 显示的内容即为所需查看的 HTTP 响应内容

curl 命令

使用curl 命令可以在命令行中发起一个http请求。
例如

  1. curl -s -v -- "https://www.baidu.com"
    发起一段请求
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*

  1. curl -X POST -s -v -- "https://www.baidu.com"
    请求的协议为post
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*

  1. curl -X POST -d "1234567890" -s -v -- "https://www.baidu.com"
    发起的请求包含了一段上传的数据
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

1234567890

你可能感兴趣的:(前端 | HTTP相关知识的学习)