HTTP

作者: 疯狂的蜗牛Dianna | 来源:发表于2018-05-16 20:07 被阅读0次

http简介

http的英文名称是:Hypertext transfer protocol.
Tim Berners-Lee (中文名是李爵士),在1989年至1992年间,发明了WWW
(world wide web),一适用于全世界的网络。

主要包括三个概念

  • URI,俗称网址(统一资源标示符)
  • HTTP,两个电脑之间传输内容的协议
  • HTML,超级文本,主要用来页面跳转
    URL的作用是让你访问一个页面,HTTP的作用是能让你下载这个页面,HTML的作用是能让你看懂这个页面。

URI是什么

李爵士除了发明这些概念,还付诸了行动:
1、发明了第一个服务器
2、发明了第一个浏览器
3、发明了第一个网页 (世界上第一个网页还能浏览 网址是:info.cern.ch)

URI是什么?

google URI维基百科(Uniform Resource Identifier)
URI分为URL(统一资源定位符)和URN(统一资源名称),我们一般使用URL作为网址。

URL的常见组成

image.png

DNS的全称是 Domain Name System(域名系统)

  • 输入域名
  • 输出IP

Server(服务器) + Client(客户端) + HTTP

image.png

21端口 FTP开放
443端口 HTTPS
1080端口 代理服务器
3306端口 MySQL服务器
80端口 HTTP协议

浏览器与服务器的交互

  • 浏览器负责发起请求
  • 服务器在80端口接收请求
  • 服务器负责返回(响应)网页
  • 浏览器负责下载响应内容

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

请求与响应

请求示例:

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

picture1.png
请求内容为:
GET /HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.53.0
accept: * / *

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

picture2.png

请求内容为:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.53.0
Accept: * / *

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

picture3.png
请求内容为:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.53.0
Accept: * / *
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

请求的格式

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

  • 请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)
  • 第三部分永远都是一个回车(\n)
  • 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  • 这里的路径包括「查询参数」,但不包括「锚点」
  • 如果你没有写路径,那么路径默认为 /
  • 第 2 部分中的 Content-Type 标注了第 4 部分的格式

用chrome发请求

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

响应

请求了之后,应该都能得到一个响应,除非断网了,或者服务器宕机了。
响应示例
上面三个请求示例,前两个请求对应的响应分别为


picture4.png picture5.png picture6.png

1、GET 请求和 POST 请求对应的响应可以一样,也可以不一样
2、响应的第四部分可以很长很长很长

用chrome查看响应

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

打开 Network

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


picture7.png picture8.png

状态码要背,是服务器对浏览器说的话

1开头的http状态码

表示临时响应并需要请求者继续执行操作的状态代码。
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2开头的http状态码

表示请求成功
200 成功处理了请求,一般情况下都是返回此状态码;
201 请求成功并且服务器创建了新的资源。
202 接受请求但没创建资源;
203 返回另一资源的请求;
204 服务器成功处理了请求,但没有返回任何内容;
205 服务器成功处理了请求,但没有返回任何内容;
206 处理部分请求;

3xx (重定向)

重定向代码,也是常见的代码
300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4开头的http状态码表示请求出错

400 服务器不理解请求的语法。
401 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 服务器拒绝请求。
404 服务器找不到请求的网页。
405 禁用请求中指定的方法。
406 无法使用请求的内容特性响应请求的网页。
407 此状态代码与 401类似,但指定请求者应当授权使用代理。
408 服务器等候请求时发生超时。
409 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410 如果请求的资源已永久删除,服务器就会返回此响应。
411 服务器不接受不含有效内容长度标头字段的请求。
412 服务器未满足请求者在请求中设置的其中一个前提条件。
413 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 请求的 URI(通常为网址)过长,服务器无法处理。
415 请求的格式不受请求页面的支持。
416 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 服务器未满足”期望”请求标头字段的要求。

5开头状态码并不常见,但是我们应该知道

500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

相关文章

网友评论

      本文标题:HTTP

      本文链接:https://www.haomeiwen.com/subject/djwudftx.html