HTTP
超文本传输协议,是客户端和服务器间约定的一系列数据传输规则。
- 传输是信息基于文本的,信息包含消息头和消息体两部分
- 是应用层抽象协议,HTTP本身不传输数据,传输数据还是要依赖TCP/IP
- HTTPS是http over TLS/SSL(安全协议,防偷听和篡改),http没有任何加密,不安全,https更安全。
HTTP头
在网页中按F12可以追踪http请求
response header
-
Request URL:
https://github.com/
-
Request Method:
GET
-
Status Code:(200表示服务器告诉客户端请求成功,并且请求的内容已经发给客户端)
200
-
Remote Address:(访问的服务器的ip和端口号)
127.0.0.1:7890
-
content-encoding:(服务器告诉客户端资源压缩的方式)
gzip
-
content-type:(服务器告诉客户端:我给你发的数据是文本类型,并且这个文本整成html格式,使用utf-8编码)
text/html; charset=utf-8
request header (客户端告诉服务端应该怎样回复)
-
user-agent:(客户端告诉服务端我的机器信息以及我可用的浏览戏信息,让服务器知道自己发送的信息被如何展示)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
-
accept-encoding:(客户端告诉服务端我支持哪些压缩格式)
gzip, deflate, br
-
accept-language:
zh-CN,zh;q=0.9,ja;q=0.8
-
cookie:(是服务器存放在客户端的文本,以键值对的方式存储,如下面的内容**=**,当浏览器请求一个网站,会在本机上找有没有这个网站存在本机的cookie,如果找到了就在请求中带上cookie,如果没有找到,就不带cookie;服务器可以利用cookie做很多事情:比如根据cookie内容决定呈现的内容,或者统计用户使用信息等)
_octo=GH1.1.1560611860.1660268053; logged_in=no; _gh_sess=RqLk7Gz2%2F3mJF09sbiWf1qxbveddhMXrQ04MlnwrkNG%2B5bMzXoxJlFlQnqKZteWSsCex%2BhqtSxlo6GOWcAusMvYMhfA830uzb56GaBSjMfVkrLqpSRgAn4G01%2FYDoXPsJfhAGSzEwDAjRijQYNNpGuxUnMuGgII9AHuQesUT1xERrP6GiuX%2FUQAuJYHdKd7Dz510DcP%2BytFacxqJPaKNClO41eGiGsFPu%2BYmWNjCfoNIGIiLyEbDEQm0DcSWOEY%2FpYOCm5spVyRvZd1zK9iE%2FQ%3D%3D--87jchxjkI2GYIYwy--nKKZ9yS602Fc9EJbRh2kmQ%3D%3D; tz=Asia%2FShanghai
-
HTTP体
是服务器根据客户端的请求回应的内容,在response中,根据请求的不同类型,回应体可以是空的。本例中我们请求的是github的主页,返回的是一个html。
HTTP方法
告诉服务器使用什么动作处理请求的资源
- GET http://www.example.com/users(得到请求的users)
- POST http://www.example.com/users/a-unique-id (创建提交一个新的用户)
- PUT http://www.example.com/comments/a-unique-id (更新一个conmment)
- DELETE http://www.example.com/comments/a-unique-id (删除一个comment)
GET:只读,服务器只是简单的取数据返回,不会改变数据,对应返回状态码200 ok(找到);404 not found(没有找到)
POST:常用于创建新的资源,比如新注册用户提交等,对应201(created)返回码
PUT:常用于更新已有的资源,也可用于创建新资源,对应返回200 ok 更新成功,404没有找到指定资源
DELETE:删除指定的资源,对应返回200 ok删除成功,404没有找到指定资源
以上返回500表示服务器错误。
REST
是你写http应用时可以遵守的一系列约束,它会规范例如:服务器端和客户端的统一接口规范。
如restful应用。