关于HTTP 1 (概念理解与请求响应)

介绍

HTTP,HyperText Transfer Protocol(超文本传输协议),请求-响应协议。是一种运用广泛的网络协议,所有的WWW文件必须遵守这个标准。

HTTP协议建立在TCP协议和IP协议上。

HTTP 的作用就是指导浏览器和服务器如何进行沟通。

具体参考

 

关于HTTP请求

请求包含三或四个部分:请求行,请求头,(回车),请求体

1.第一部分:动词路径协议/版本

2.第二部分:
  Key1: value1
  Key2: value2
  Key3: value3
  Content-Type: application/x-www-form-urlencoded  (application 应用数据  /  x- 没有被写入规范的格式,实验属性  /  form 表单  /  urlencoded 转义)
  Host: www.baidu.com
  User-Agent: curl/7.54.0

3.第三部分:回车

4.第四部分:要上传的数据

 

动词:

    get 获取

    post 新增、上传

    put 整体更新

    patch 局部更新

    delete 删除

    Head,Options.......

 

注意:

  1. 请求包含三/四部分,第三部分永远是一个回车(/n)
  2. 这里的路径包括查询参数,但不包括锚点
  3. 若没有写路径,默认为 /
  4. 第二部分content-type标注了第四部分的格式

 

请求示例

get

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"



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

 

post

curl -X POST -s -v -- "https://www.baidu.com"


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

 

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响应

响应包含四部分,与请求相似

1.第一部分:协议/版本号 状态码 状态解释

2.第二部分:
  Key1: value1
  Key2: value2
  Key3: value3
  Content-Length: 17931
  Content-Type: text/html

3.第三部分:回车

4.第四部分:要下载的内容

 

响应示例

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

 

*开发者工具使用:

 

关于curl的使用

请求

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

请求上传

  • curl -X POST -s -v -- "https://www.baidu.com"
  • curl -X POST -d "1234567890" -s -v -- "https://www.baidu.com"

 

TCP传输控制协议(Transmission Control Protocol)

两个问题:

1.TCP和UDP的区别

TCP可靠,面向连接,相对UDP较慢;UDP不可靠,不面向连接,相对TCP较快。

 

2.TCP的三次握手

(1)客户端:我要链接了,可以么?

(2)服务端:嗯,链接吧。

(3)客户端:那我连接你啦!

(4)连接开始

注意:每次连接,客户端与服务端之间都要有三次对话,才开始传输内容

 

IP网络协议(Internet Protocol)

从电信购买宽带;

电信提供DNS服务;

有路由器,设备连接路由器提供的WIFI;

路由器连接电信服务器,路由器有外网IP,如[14,17,23,211]  0-255;重启路由器,路由器有新的外网IP(路由器无固定外网IP);

使用的手机/电脑的IP是内网IP;

  路由器创建内网,内网设备使用内网IP,192,168,xxx,xxx

  路由器会先给自己配一个好记的IP,如192,168,1,1

  内网设备的IP则为192,168,1,2   192,168,1,3  ......

  内网设备可以互相访问

  内网设备不可直接访问外网,必须经过路由器,路由器访问外网

 

几个特殊的IP

127.0.0.1  访问设备自己 ,即被本地IP

0.0.0.0  不表示任何设备

 

端口(Port)

 

是一种编号,不是硬件

一个端口号提供一种服务

 

每个机器有65535个端口

0—1023端口是给系统用的,其他端口给普通用户用

若要使用的端口被占用,那此端口不能使用,除非先停掉这个端口的服务

 

注意:使用HTTP协议访问另一个IP时,需要同时提供IP和端口号,缺一不可。(浏览器默认帮忙添加端口号80)

 

几个端口号了解一下:

  • 浏览器负责发起请求

  • 服务器在 80 端口接收请求

  • 服务器负责返回内容(响应)

  • 浏览器负责下载响应内容

  • 端口:21(FTP服务器)

    443(HTTPS)

    1080(代理服务器)

    3306(MySQL端口)

    80(HTTP协议)

 

posted @ 2019-06-17 17:38  BUBU_Sourire  阅读(909)  评论(0编辑  收藏  举报