请求和响应

HTTP

http(HyperText Transfer Protocol),超文本传输协议,它是一种网络协议,所有的www文件都必须遵守这个标准。可以说,web是建立在http协议上通信的。

DNS

dns(DomainName System),域名系统(域名解析系统),主要让用户在互联网上通过域名找到对应的ip地址,而不用去记住能够被机器直接读取的IP数串。

  • 输入:域名 , 输出:IP
  • 一个域名对应的ip可以有很多(eg:ping baidu.com)
  • 一个域名对应的ip是由域名所有者指定的
  • 改 hosts 可以手动指定域名对应的 IP

 vim host

  • DNS 可能有缓存,浏览器或者运营商

端口

  • TCP 或 UDP 协议的规则,一个端口对应一个服务
  • 0 到 1023 号端口是保留端口(只有管理员才能用)
  • 常用端口
    • 21 端口 - FTP
    • 80 端口 - HTTP
    • 53 端口 - DNS
    • 443 端口 - HTTPS
    • 1080 端口 - SOCKS 代理

请求和响应

我们在浏览器中输入Google网址到Google网页跳转出来,就经历了一次完整的请求和响应。请求由客户端(即浏览器)发出,响应由服务器端发出。

请求分析

1
2
3
4
5
6
请求行:(请求方法 路径 协议/版本号) #eg: GET /index.html HTTP/1.1
请求头: 请求首部字段
通用首部字段
实体首部字段
空格
消息体:(aaa=bbbb&ccc=ddd)

注:一般的请求方法有:POST \DELETE \PUT \PATCH \GET \HEAD \OPTIONS \CONNECT \TRACK

响应分析

1
2
3
4
5
6
状态行 (协议/版本号 状态码 状态描述)#eg:TTP/1.1 200 OK
响应头:响应首部字段
通用首部字段
实体首部字段
空格
消息体

状态码

状态码的类别:

类别 原因
1XX Informational(信息状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常,200
3XX Redirection(重定向状态码) 301、302(move temporarily )
4XX Client Error(客户端错误状态码) 403、404、414
5XX Sever Error(服务器端错误状态码) 500(internal sever error)
  • 一些常见的状态码
状态码 状态描述
200:OK 请求成功
301:moved permanently 请求的资源重定向了,永久移动到新位置(并且浏览器缓存这个结果)
302:move temporarily 请求的资源临时从不同的 URI响应请求。 (浏览器不缓存这个结果)
403:forbidden 服务器拒绝访问。
404:not found 请求失败,请求的资源未在服务器上发现。
405:method not allowed 请求行中指定的请求方法不能被用于请求相应的资源。
414:request-url too long 请求的uri长度超过了服务器能够理解的长度,因此拒绝提供服务。
500:internet server error 服务器遇到了一个未曾预料的状况,导致它无法完成对请求的处理